Guild icon
swift-developers-japan
開発環境, ライブラリ / xcode
Avatar
omochimetaru 4/22/2017 6:07 AM
http://xcenv.org/ @tarunon いわく良いらしい
👀 5
Avatar
xcode-install - 🔽 Install and update your Xcodes
👍 2
6:14 AM
これも
Avatar
norio_nomura 5/18/2017 6:25 AM
リモートデバッグサポートしてほしいなあ。
Avatar
norio_nomura 6/30/2017 2:44 AM
TravisにXcode 9 beta 2イメージが来たらしい https://twitter.com/travisci/status/880550780368855040
We are happy to share that we have an Xcode 9 beta 2 image ready for testing: osx_image: xcode9. See https://t.co/SGYDkioDzk for details.
🎉 2
💕 2
Avatar
An examination of build times of Xcode projects that mix Objective-C and Swift, which can contain large bridging headers, shows that the Swift compiler spends a lot of time re-processing the same bridging headers for all the Swift files in a project. In certain projects, each additional Swift file increases the overall build time noticeably, even when the Swift file is quite modest.
🤔 1
😮 1
6:42 AM
この -enable-bridging-pch をONにして開発している方いらっしゃいますか?
6:43 AM
Twitterでハッシュタグ検索してみると4月ぐらいの古いツイートしかなく、実際にやってこ効果が出たという方のツイートもちらほら見るのですが、数ヶ月前の情報なので。
6:44 AM
自分は、Debugのみ -enable-bridging-pch をONにして開発してますが、効果あるのかいまいち微妙なので皆さん意見を聞きたく。
6:49 AM
-enable-bridging-pch をONにすると -Bridging-Header.h は Precompileされてるようです。
Avatar
omochimetaru 7/6/2017 1:59 AM
C++のライブラリをビルドしやすいようにxcodeprojを同梱してリポジトリを作るとして、 ある基本ライブラリA 別の人が作ったライブラリB、Aに依存している また別の人が作ったライブラリC、これもAに依存している BとCは全く独立に開発されている、 という状況で、 BとCの両方を使ったアプリDを作ろうとしたときに、 Bから依存してるAと、Cから依存してるAの、両方をロードせずに、 Dの作業環境では共通の1つのAを使うようにしたいんですが、 B単体でビルドするときと、 Dの作業環境のAを使ってBをビルドするときと、 どちらでも使えるようなB向けのxcodeprojが作れなくて困っている
2:00 AM
SwiftPMの場合だと、そういうケースでgenerate-xcodeprojすると、Aは一つになるし、生成されたxcodeprojのHEADER SEARCH PATHがうまいこと生成されるからいけるんですが
2:01 AM
手で作ったxcodeprojをリポジトリに入れておく方針だとHEADER SEARCH PATHがどうにもならない。。
Avatar
norio_nomura 7/6/2017 3:28 AM
それらはOSSではないの?
Avatar
omochimetaru 7/6/2017 3:29 AM
OSSです ライブラリAに該当するのが自作の cpp-rhetoric で https://github.com/omochi/cpp-rhetoric ライブラリB に該当するのが同じく oliview なんですが https://github.com/omochi/oliview ライブラリCは今存在しないけど今後問題になりそう
cpp-rhetoric - small fundamental library for modern C++ programming.
Contribute to oliview development by creating an account on GitHub.
3:30 AM
現在 oliview はgit submoduleとして oliview/ext/cpp-rhetoric にcpp-rhetoricをチェックアウトしてるけど
3:30 AM
この構成だと 今後アプリDが現れたときに cpp-rhetoricが孫サブモジュールとして二箇所でチェックアウトされちゃう
Avatar
norio_nomura 7/6/2017 3:50 AM
2箇所でチェックアウトされてもアプリDのワークスペースにどちらか一方を追加するだけで良いから、問題にならない気がします。
Avatar
omochimetaru 7/6/2017 3:51 AM
oliviewがcpp-rhetoricを #include <rhetoric/rhetoric.h> しているところで探索されるファイルが
3:51 AM
xcodeのHEADER_SEARCH_PATHの関係上、 oliview/ext/cpp-rhetoric/src になってしまうんですが
3:52 AM
アプリDのビルド時の #include <rhetoric/rhetoric.h> と違うファイルシステム上で違うファイルを見ている可能性が出てしまう
3:52 AM
あーまあ、コミットが完全に同じなら、実質問題は無いけど・・・
3:52 AM
コミットが違ったりしてややこしいバイナリレベルのバグが出るのが嫌なので、気持ちとしては、同じものを見て欲しい。
Avatar
norio_nomura 7/6/2017 3:55 AM
DもAに直接依存してるの?
Avatar
omochimetaru 7/6/2017 3:56 AM
します。
3:56 AM
C++的にはincludeが芋づる式につながっていて使える状態になる。実際的にもrhetoricはResult型とか基本的な道具を提供してるからOliviewを使う限りRhetoricは使いまくる。
3:57 AM
完全隠蔽される下層のライブラリーでは無し。
Avatar
norio_nomura 7/6/2017 3:58 AM
DがCかBかどちらかのサブモジュール内のAを使ったとしても、Dビルド時にCとBがそれぞれAの違うコピーを使う可能性があるのが問題? (edited)
Avatar
omochimetaru 7/6/2017 4:00 AM
そうですね。
4:00 AM
サブモジュールがディスク上で無駄にチェックアウトされているのも問題だと思います
4:02 AM
まあ容量の問題はクリティカルでは無いかも。 Aの違うバージョンが混ざり込む問題は結構厄介だと思う。実行中にわけわからないクラッシュとかの形で出てくるから。
4:02 AM
でもまあ動くんだからいいじゃんという意味では動かすことはできますね・・・確かに・・・
4:04 AM
僕ができたらいいなと思っていてでも出来なさそうなこととして
Avatar
norio_nomura 7/6/2017 4:04 AM
.frameworkだとバイナリとヘッダが成果物としてパッケージングされて、それらを使うから起きない問題なのですね。
Avatar
omochimetaru 7/6/2017 4:04 AM
もし、xcodeが、 $WORKSPACE_HEADER_SEARCH_PATH みたいな変数を持っていて、それをHEADER_SEARCH_PATHに含めることができれば
Avatar
norio_nomura 7/6/2017 4:05 AM
そう、ビルド時に環境変数でワークスペースを保存してるものが無いか見てたのですが、なさげですね。
Avatar
omochimetaru 7/6/2017 4:05 AM
DのほうでA と B と Cをそれぞれチェックアウトしておいて、 BとCは $WORKSPACE_HEADER_SEARCH_PATH から検索しておけば、 B単体では Bの中のA を参照しつつ、 Dの作業時は、 BのサブモジュールとしてのAはチェックアウトせずにおいて、 Dのほうでもってきた A を変数経由で見つけてくれれば
4:06 AM
よくって、 gnu make とかの文化だと、実際、 $INCLUDES みたいな環境変数をつかってそういうことが制御できる。
4:06 AM
そう、ビルド時に環境変数でワークスペースを保存してるものが無いか見てたのですが、なさげですね。
そうなんですよね。いろいろ調べたんですけど、あくまでxcodeproj単体であらゆる条件が再現されるように注意深く設計されているように感じます。
4:08 AM
.frameworkだとバイナリとヘッダが成果物としてパッケージングされて、それらを使うから起きない問題なのですね。
そうですね。ワークスペースにフラットに並んでる「フレームワークの名前」単位で、それぞれの依存関係が処理されると、望ましい
4:09 AM
現実的に取れる選択肢としては、 同じコピーになることを前提に特になにもしないか (edited)
4:10 AM
B -> A 間のgitサブモジュール連携を切って、 BとAが同一ディレクトリにチェックアウトされることを前提にして、 そもそも ../../A/src みたいな感じでリポジトリの外をみるように設定しておくか、。。
Avatar
norio_nomura 7/6/2017 4:11 AM
あとはAの成果物にヘッダも含めることで、自動でHEADER_SEARCH_PATHSに含まれる$BUILD_DIR/includeあたりにコピーする様にするとか。
Avatar
omochimetaru 7/6/2017 4:16 AM
あ〜〜
4:17 AM
ビルド用のスペースにものを展開していく感じにするってことですか
4:19 AM
うまくいきそうな気配がします
4:19 AM
そっちの方面は考えてなかったんで考えてみます、ありがとうございます
Avatar
norio_nomura 7/6/2017 4:22 AM
自動でHEADER_SEARCH_PATHSに含まれる$BUILD_DIR/includeはワークスペース内で共通になると思うので、Aのターゲットをちゃんと作れればうまくいきそうな気がします。
Avatar
omochimetaru 7/6/2017 4:23 AM
ですね、ビルドスペースはワークスペースで一個で、その中にプロジェクト全部並んでる感じだし
Avatar
omochimetaru 7/6/2017 8:52 AM
@norio_nomura のいう $BUILD_DIR/include にヘッダを展開する機能が static library プロジェクトで標準で組み込まれていました
8:53 AM
それでほとんど望ましい状態にできたんだけど
8:53 AM
微妙に微妙な感じになってしまった。
8:53 AM
ややこしいので詳細はまとめておいた。 https://github.com/omochi/xcode-build-test-ddd/tree/master
Contribute to xcode-build-test-ddd development by creating an account on GitHub.
Avatar
norio_nomura 7/6/2017 11:15 AM
試そうとしたら、サブモジュール3つにアクセスできませんでした。
Avatar
omochimetaru 7/6/2017 12:08 PM
あー、pushできるgiturlのほうにしてしまった
12:08 PM
あとで直しておきます
Avatar
omochimetaru 7/6/2017 12:55 PM
@norio_nomura 修正しました。
Avatar
norio_nomura 7/6/2017 1:08 PM
bbbcccのサブモジュールaaaにアクセスできないみたい。
Avatar
omochimetaru 7/6/2017 1:09 PM
あーーーーそこもかーーーーーー
Avatar
norio_nomura 7/6/2017 1:10 PM
みんなssh使ってるのね
Avatar
omochimetaru 7/6/2017 1:12 PM
直しました
1:12 PM
最初からcloneしなおしてみるとできるとおもいます
Avatar
norio_nomura 7/6/2017 1:13 PM
いけました
Avatar
omochimetaru 7/6/2017 1:14 PM
ddd.xcworkspaceを開いた上で
1:14 PM
cccのLinkLibraryにaaa, bbbのLinkLibraryにaaaを設定すると
1:14 PM
依存解決が動く状態になる
1:15 PM
ddd.xcworkspaceを閉じてからbbb.xcworkspaceを開いてもビルドできる。
Avatar
norio_nomura 7/6/2017 1:56 PM
なるほど、これは微妙だ
Avatar
omochimetaru 7/6/2017 1:56 PM
依存をつなごうとするとaaaの実行コードを含むbbbを作ることになってしまう。
1:57 PM
本来的な意味だと bbbのビルドが $build/include/aaa/aaa.h に依存していることから BBB -> AAA の依存が生成されないといけないけどそのような設定はできず。
Avatar
norio_nomura 7/6/2017 2:10 PM
aaaターゲットのHeadersビルドフェーズを一番上に持ってくると、bbbとcccにaaaをリンクしなくてもうまくいく様になるのは僕の環境だけだろうか
Avatar
omochimetaru 7/6/2017 2:11 PM
おそらく。dddから見るとaaa/bbb/cccは並列ターゲットになっていて
2:11 PM
同時に実行されるので
2:11 PM
間に合う確率が高くなっているだけだと思います。
2:11 PM
dddのビルドスキームから、Edit Schemeを開いて、Buildのタブを開いて Parallized build のチェックを外せば
2:12 PM
それはなくなるけど、aaaが先にくる保証がないです
Avatar
norio_nomura 7/6/2017 2:12 PM
libbbb.aaaa.oとかも含まれなくなる。
Avatar
omochimetaru 7/6/2017 2:12 PM
それはbbbのLink Binaryからaaaを外した場合ですよね?
Avatar
norio_nomura 7/6/2017 2:13 PM
そうだね、当然だ。
Avatar
norio_nomura 7/7/2017 12:18 PM
bbbcccのサブモジュールaaaにアクセスできないみたい。
~/.gitconfigに以下を追加することで、gitが常にhttpsでgithub.comへアクセスする様に指定できることを知った。 [url "https://github.com/"] insteadOf = git://github.com/ insteadOf = git@github.com: insteadOf = github.com:
(edited)
👏 2
Avatar
omochimetaru 7/13/2017 4:15 AM
Xcode9.3 beta いれてから Playgroundが
4:16 AM
Unable to create device set at /Users/omochi/Library/DEveloper/XCPGDevices
4:16 AM
ってでて使えなくなった・・・
Avatar
古いXcodeを終了させてもですか?
Avatar
omochimetaru 7/13/2017 6:00 AM
わ~治った・・・
6:00 AM
それも、試してたんですけど、そのときはまだ新しいXcode-betaの方のシミュレータをダウンロードしてなかったから・・・?
😻 1
6:00 AM
すいません、ありがとうございました。
Avatar
omochimetaru 7/20/2017 4:43 AM
xcode9.0 beta3 を使っているんだけど Ctrl + I の Re-Indent が、空行で押しても何も起きないのが不便だ
4:43 AM
以前は空行でやると適切なインデント位置にカーソルが移動してたから、書き始めるときにはだいたい押してる
Avatar
Tabキーでも適切な位置にカーソル移動すると思うんだけど、そういう話ではない?
Avatar
omochimetaru 7/20/2017 4:46 AM
Tabキーだと、右に行き過ぎてる時とか、タブ文字が右まであるときには変な位置にいっちゃうっぽい
4:47 AM
適切な位置より左にカーソルがあってかつ、適切な位置より右に空白文字が無い場合だけ、TABでOK
Avatar
脳筋なので⌘⌫からTabやってた
4:48 AM
⌘→, ⌘⌫, Tabかな
Avatar
omochimetaru 7/20/2017 4:48 AM
あれ? Ctrl + I が効かないのいつだ・・・?
Avatar
多分行消すショートカットはあるからそっちのほうがまだマシっぽい
Avatar
omochimetaru 7/20/2017 4:48 AM
なんか効かないときの条件が謎だな
Avatar
omochimetaru 7/20/2017 4:48 AM
Cmd + Del いいね。
4:49 AM
あ、おなじだ、カーソルより右に空文字があるときにCtl+Iが駄目だ
4:50 AM
行削除後ならCtrl + I でもいけるわ。なるほど。
Avatar
^Kでカーソル位置より後ろ消せるから
4:50 AM
^K, ^Lが最速かな?
Avatar
omochimetaru 7/20/2017 4:51 AM
^Lは何?
Avatar
ごめん、^Iだわ
4:51 AM
IをLの小文字と空目してた
Avatar
omochimetaru 7/20/2017 4:52 AM
w
4:52 AM
Cmd + Delで左消してCtrl + K で右消して Ctrl + I でインデントかw
Avatar
左側消さないといけない?
Avatar
omochimetaru 7/20/2017 4:54 AM
あーそっか
Avatar
それなら指の動き考えると⌘→, ⌘⌫, Tabの方がはやい
4:54 AM
消さなくていいなら^K, ^I
Avatar
omochimetaru 7/20/2017 4:54 AM
Ctr + K ; Ctr + I だけで大丈夫だ ありがとう
🍡 1
Avatar
omochimetaru 7/20/2017 9:26 AM
Ctr + K だとそこがもし右に空白がない場合には右の改行を食ってしまって下の行がせり上がってくることがわかった
Avatar
ダメじゃん
10:14 AM
⌘→⌘⌫Tabで。
Avatar
ぐぬぬ
Avatar
Tabは⇥なのか
Avatar
パッと見厳しそうではある
Avatar
Xcode 9 beta 4 来てる
👀 2
Avatar
Optionalクロージャ治ってないw
Avatar
7/11 リリースブランチ分岐で Optionalクロージャの修正は 7/12 。おしいw
Avatar
Swift4対応がこれのお陰で無限にPendingなのでヒジョーにつらいw
3:48 AM
Optional closureでデフォルトnilより、Void返す関数でデフォルト空関数の方がパフォーマンス良ければそっち提案して書き換えて~ってやるんですけどね
3:49 AM
Optional closureでnilの方が普通にパフォーマンス良くて困る
Avatar
norio_nomura 7/27/2017 1:38 AM
SWIFT_REPORT_ERRORS_TO_DEBUGGER ってのがXcode 9 beta 4で追加されてる。
1:39 AM
-Xfrontend -report-errors-to-debugger になるぽい。 https://github.com/apple/swift/blob/master/include/swift/Option/FrontendOptions.td#L297-L298 def report_errors_to_debugger : Flag<["-"], "report-errors-to-debugger">, HelpText<"Invoke the debugger hook on fatalError calls">;
swift - The Swift Programming Language
Avatar
norio_nomura 7/27/2017 1:53 AM
あいや、まだGUIから使える様になってなかった。
Avatar
norio_nomura 7/28/2017 9:49 AM
SwiftPMだとSwift 3.xとSwift 4.0のどちらでもビルドできて、どちらでも依存先として使えるパッケージを作れるけど、Xcodeでビルドされるライブラリの場合、SWIFT_VERSIONはプロジェクト設定で固定されてしまうから、ブランチを分けるしか無いよね。
Avatar
分けるしか無い気がする
9:50 AM
SPM、まだiOS9以上とか指定できないですよね
9:50 AM
コードにavailable書けってことかなぁ
Avatar
norio_nomura 7/28/2017 9:55 AM
YAMLのCodable対応Encoder, Decoder実装のソースをSwift 3.0.2以降ならビルドできる様にしてるけど、Xcodeが3.x or 4.0にロックインしてしまうせいで、無駄な努力に思えてきてしまう。 https://travis-ci.org/jpsim/Yams/builds/258439236
Avatar
norio_nomura 8/1/2017 12:54 AM
推測された型をインラインで表示するAppCodeの機能、Xcodeに欲しいな。 https://twitter.com/appcode/status/892062933936726017
#WhyAppCode: Have type hints displayed inline for #swiftlang variables via ⇧⌘A → "Show Swift Type Hints" https://t.co/gWyndSB8TK
Avatar
IntelliJ使ってるとこの辺の機能がかなり便利
🙂 1
12:56 AM
関数の引数ラベルとかも表示される言語があって、これはSwiftでは役に立たないけど
Avatar
norio_nomura 8/1/2017 1:02 AM
JetBrainsのOpen Source Licenseを久しぶりに申し込もうかと思ったら、以前より条件が厳しくなってるな。 https://www.jetbrains.com/buy/opensource/
JetBrains, creator of the best Java IDE - IntelliJ IDEA - is a technology-leading software development firm specializing in the creation of intelligent development tools.
Avatar
norio_nomura 8/2/2017 2:44 AM
// swiftlint:disable …を入力しようとすると高確率でXcode 9 beta 4が固まる 😞
Avatar
コメントで死ぬ件、 #apple-official-event の直近の話題と同じかな。
Avatar
norio_nomura 8/2/2017 4:01 AM
ですね
Avatar
ロシアの方から↓のような質問を受けたんですが、何かわかる人いませんか?日本語使うと行の高さがおかしくなる話だと思うんですが、僕はそういうものと受け入れていたので対策はわかりません。 Hi! Sorry for bothering but I don't know where else to ask. Could you recommend a good font for displaying Japanese characters in Xcode? I was talking about Japanese as a part of code (e.g. in comments or string literals). I noticed that the default font (Menlo) displays all lines with at least 1 Japanese character in a strange way, like they're higher than they should be. I tried to search for some font that maybe Japanese developers use that could display correctly both ASCII symbols and Japanese.
12:54 AM
僕はRicty使って快適にやってます
Avatar
ありがとう。伝えておきました。 (edited)
Avatar
Xcodeのエディタを左右に分割して使ってるとき、右ペインで置いてあったブレークポイントで止まったときは右ペインでステップ実行とかさせてほしいんだけどそういうのできませんよねー
Avatar
Preferences > Navigation > Navigation > Uses Focused Editorにチェックつけて 右ペインにフォーカスさせた状態でブレイクさせたら右ペインでもステップ実行できますけど、これじゃだめっすかね (edited)
💯 1
Avatar
beta5来ましたね
❗ 2
Avatar
@ありぜ 右ペインでステップ実行のやつ、これだいぶ嬉しいです ありがとうございます
☺ 1
Avatar
omochimetaru 8/8/2017 2:09 AM
xcodeをダウンロードしてインストールするたびにTemplatesを差し替えるのがだるい
Avatar
omochimetaru 8/8/2017 9:57 AM
beta5でもSKSがフリーズするのは治っていない・・・
Avatar
omochimetaru 8/9/2017 1:42 AM
フリーズして5秒ぐらい待ってると回復するように改善している気がする。CPU100%のメモリ5Gとかなってるけど。
🐽 1
Avatar
omochimetaru 8/9/2017 1:54 AM
だんだん6Gとかなるしやっぱバグってるのかなあ
Avatar
omochimetaru 8/9/2017 11:30 AM
Time Profiler とかのツールを、デバッグビルドに対して使用する方法ってありますか? Schemeの設定で profile 向けの Configuration を Debug に切り替えたら、一見うまくいったんですが、 Time Profiler でシンボル名が表示されなくなって、アドレスしか出なくて、使い物になりませんでした
11:34 AM
あ、 Releaseビルド向けの Optiomization の設定を -O0 にするっていう方法でとりあえず目的は果たせそうです。
11:34 AM
ここは後でもとに戻さないといけないので、Debugビルドをproflingできたほうが望ましいですが。
Avatar
@omochimetaru 下記方法でもだめですかね?? 1. DebugでアプリをRun 2. Xcodeのメニュー > Open Developer Tool > InstrumentsでInstruments起動 3. Instrumentsで使用したいProfile(Time Profiler等)選択 4. Instrumentsのウィンドウ左上で接続している端末+Profile使いたい「1.」のアプリ選択 5. RecordボタンでProfile開始
Avatar
omochimetaru 8/9/2017 4:06 PM
@ありぜ なるほど、通常のRunから実行して後から直接アタッチするんですね。それ自体はうまくいきましたが、同じようにシンボル名がアドレスだけになってしまいました・・・
😣 1
Avatar
norio_nomura 8/9/2017 11:41 PM
以前はInstruments用のビルド設定 Profile がテンプレートに含まれていたけど、最近は含まれなくなったね。Instrumentsに必要なビルド設定の資料を以前探したけど、公式に書かれたものは見つけられなかった。
Avatar
なるほど
Avatar
DEBUG_INFORMATION_FORMAT = dwarf-with-dsym でだめですかね?
😮 2
Avatar
omochimetaru 8/10/2017 7:32 AM
お・・・ 今ビルドできない状態なんであとで試してみます〜〜
Avatar
omochimetaru 8/10/2017 9:08 AM
@rintaro いけました!なるほど〜〜〜これか〜〜〜〜〜
👍 1
Avatar
omochimetaru 8/17/2017 9:28 AM
Leaks使うと処理がおもすぎるのか30秒ぐらいフリーズして、プロセスが落ちてしまう・・・
Avatar
Xcode9 beta6とiOS11 beta7 キマシタワー
😎 2
Avatar
安定性上がってるといいな
Avatar
omochimetaru 8/22/2017 3:09 AM
Leaksかけるとクラッシュするの変わってない・・・
Avatar
omochimetaru 8/22/2017 4:06 AM
黄色いフォルダのアイコンに
4:06 AM
左下に三角形のついてるタイプの新しいアイコンが有る
4:06 AM
実際のディレクトリと接続してるかどうかを表しているのかな?
Avatar
omochimetaru 8/22/2017 5:46 AM
「XCBBuildServiceが予期しない理由で終了しました」
5:46 AM
壊れ方が良くなった気がする!w
Avatar
🤔
😇 1
Avatar
>壊れ方が良くなった気がする! 強い…
Avatar
omochimetaru 8/22/2017 8:56 AM
1度クラッシュすると、以降ビルドできなくなって、xcodeの再起動がひつよう
: The Xcode build system has crashed. Please close and reopen your workspace.
8:56 AM
SKSだけ殺せば良かった状態と比べて不便になっている・・・
8:56 AM
でも安定性は上がってる
Avatar
めっちゃめんどいやん
8:57 AM
reopenしんどい
Avatar
omochimetaru 8/22/2017 8:57 AM
途中保存なエディタとか開いてると厳しそう。
Avatar
omochimetaru 8/22/2017 9:22 AM
あれーなんかリビルド検知がおかしいなあ
9:22 AM
FrameworkとAppをわけて作業してるんだけど、Frameworkのリビルドがされずにすり抜けてしまう事が多発している・・・ (edited)
Avatar
なんか重いと思ったら Interface Builder が暴走(?)して CPU 350% 使用してた😵
Avatar
omochimetaru 8/24/2017 1:45 AM
ww
1:45 AM
beta5ですか?
1:45 AM
あいや、今はbeta6か
Avatar
まだアップデートしてなくてbeta5
Avatar
omochimetaru 8/24/2017 1:45 AM
なるほど
Avatar
やば
1:46 AM
強制終了したら storyboard がぶっ壊れたww
1:47 AM
あ、 Xcode を再々起動したら直った。焦った。
Avatar
Mac がうぃんうぃん言い出したと思ったらまた 280% になってた・・・
Avatar
SourceKitService の CPU 利用率がついに 498% を記録した・・・。 (edited)
Avatar
$ sample ${SourceKitServiceのPID} の結果で radar バグリポート投げればどこで詰まっているか調べてくれるかもしれないですね。
🙂 1
Avatar
Xcode9のGM版、非ASCII文字がある行だと行の上に謎の隙間ができる... 🤔
Avatar
omochimetaru 9/13/2017 4:53 AM
それってxcode昔からそうじゃないです?
4:54 AM
日本語が混ざると行の高さが壊れるやつ
Avatar
ほんとだ...(Xcode8開いて見てみた)
Avatar
そんなことより俺今月末で今の会社やめるんだけどiPhone X対応どうすんだよ俺やる気ないぞ
👀 1
5:05 AM
(ちなみに弊社のiOS開発者は私一人だけです
Avatar
omochimetaru 9/13/2017 5:05 AM
えっ、やめちゃうのー
Avatar
やめます
Avatar
omochimetaru 9/13/2017 5:05 AM
貴重な御社の知り合いだと思ってたのにw
Avatar
おちんぎんが少ないので
Avatar
omochimetaru 9/13/2017 5:05 AM
そっか・・・
Avatar
まあおちんぎんは我慢できる領域ですよ、我慢できない領域もあったので
5:07 AM
gitどころかsvnすら使わないヒューマンパワーでバージョン管理してるとか、コードレビューの文化がないとか、あまつさえC++使ってるくせにオブジェクト指向じゃないとか
🌃 2
😨 1
5:07 AM
それなのにそんなプロジェクトの面倒も見ないといけないとか
5:08 AM
平均ファイル行数7000行、平均関数行数3桁、ネストが7、8階層とか平気に書いてるソースコードとかもう読みたくない
😂 5
Avatar
⌘+control+クリックでジャンプしようとするとXcode固まるの自分だけだろうか??ちなGM版
Avatar
omochimetaru 9/13/2017 7:28 AM
GMseedですが飛べます
Avatar
ふむ。どうもです。 確率1/2くらいで今のところ発生してて辛い
Avatar
たぶん自己解決 xcode-selectが削除したXcode9beta6のパスになってた
Avatar
GamesでXcode追加していたつもりでしたが、Xcode 9に入れ替わったためか外れてて、今また追加しました 🤔
Avatar
Kishikawa Katsumi 9/22/2017 3:56 PM
public class A { public class func f() { B.f() } } class B { private class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } class func f() { let _ = C().f() } }
3:57 PM
^ このコードをXcode 9でReleaseビルドしようとすると終わらない。
Avatar
omochimetaru 9/22/2017 5:04 PM
おお本当だ コマンドラインで swift -O a.swift でハングする Xcode9.0 GM Seed 同梱版
Avatar
Kishikawa Katsumi 9/22/2017 5:05 PM
確認ありがとうございます。別のマシンでも確かめようと思ってXcode 9ダウンロードしてたけど、このままバグレポートします。
Avatar
omochimetaru 9/22/2017 5:07 PM
ちょっと変えると発症しなくなりますね
Avatar
Kishikawa Katsumi 9/22/2017 5:08 PM
print()が影響しているのとかすごく謎
Avatar
omochimetaru 9/22/2017 5:08 PM
少し短くできないか試してるけどなにかやると直るw
Avatar
どうやって見つけたんですかこれw
Avatar
Kishikawa Katsumi 9/22/2017 5:08 PM
public class をinternalにしてもビルドできるから最適化周りだとは思う。
Avatar
omochimetaru 9/22/2017 5:09 PM
public class A { public class func f() { B().f() } } class B { private class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } func f() { C().f() } }
5:09 PM
ちょっと短くなった
Avatar
Kishikawa Katsumi 9/22/2017 5:09 PM
関わってるところからビルドが終わらないけどどうしたらいいという相談を受けて、コードを調べていっただけです。
Avatar
なるほど
Avatar
omochimetaru 9/22/2017 5:10 PM
public class A { public func f() { B().f() } } class B { class C { var this: C? = nil lazy var number: Int = { var local: C? = self let count = 0 while let temp = local?.this { local = temp } return count }() func f() -> C { if number == 0 { return self } print(number) return self } } func f() { C().f() } } (edited)
5:10 PM
意外と class func は関係ない
Avatar
Kishikawa Katsumi 9/23/2017 4:50 AM
https://bugs.swift.org/browse/SR-5968 レポートしました。
🎊 8
Avatar
Kishikawa Katsumi 9/25/2017 7:56 PM
The problem is that within SimplifyCFG we call this for an instruction within unreachable code. And within an unreachable block it can happen that defs do not dominate uses (because there is no dom...
🎉 9
Avatar
ステータスがちゃんとResolvedになってる
Avatar
omochimetaru 9/28/2017 6:33 AM
アプリとフレームワークでターゲットを分けて開発してる時、Swift Error ブレークポイントを貼っておいても、フレームワークの中で throw されるとブレークしないのって前からそうでしたっけ
Avatar
omochimetaru 9/28/2017 6:40 AM
workspace / App.xcodeproj / target App workspace / Lib.xcodeproj / target Lib (framework) xcodeprojもわけている
6:44 AM
あ、わかりました。 Optiomization Level が -O だと止まらないみたいでした。
6:45 AM
Debugビルドでも-Oに設定していた。
Avatar
Debugでも-O、Debug只管難しそう
Avatar
Xcode9についてるシミュレータ、Stay in frontできなくなった…?
5:34 AM
ド不便
5:34 AM
なんとかなりませんか
Avatar
ほんとだ、できないですね
5:35 AM
There used to be a button called "stay in front" in older versions of ios simulater. I used this often, but in recent updates it seems to be removed. Is there a any way to activate this feature ? ...
Avatar
シミュレータアプリの機能でできないんだったら、ウインドウ操作系のMacアプリでそういうことができるやつが無いかなと思ってるんだけど誰か知らないかなあ
Avatar
任意のウィンドウをStay in frontできるアプリなかったっけ
Avatar
そう、それを知りたい
Avatar
間違いなくあったんだけど今も動くかは不明、ちょっとほってみる
Avatar
デファクトが無いなら適当にいれてみるか〜って感じ
Avatar
どのアプリだったか忘れてしまった、BTTに入ってないかなと思ったけど入ってないぽい
Avatar
BTTにありそうわかる
Avatar
Project navigator内のフォルダ展開状況を記憶してくれないのは、swift package generate-xcodeprojで作成したプロジェクトだからだろうか?
Avatar
SwiftPMで作ったプロジェクトでも特にいつもどおり記憶すると思います。 generate-xcodeprojを再び行ったときには、リセットされる。
Avatar
ぬぬ、別のnavigatorに切り替えて戻ると全部閉じちゃうんですよね… (edited)
Avatar
自分が気づいてないだけで同じ現象に遭遇しているかも。
Avatar
Make Xcode 9’s Open Quickly function work better with this one not-so-weird trick. (You’re welcome.) https://t.co/jq98JgiZ4E
3:24 AM
Swift Generated Interfaceモードを有効にします。すべての結果は、以前のようにランダムな結果ではなく、スウィフトとして表示されます。
3:25 AM
このSwiftマークを有効にしたら、どうなるのかイマイチよくわかってないのですが、どなたか詳しく知っている方いますか?
3:26 AM
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです
Avatar
omochimetaru 11/9/2017 3:29 AM
そもそも Open Quickly を使ったことがない・・・
Avatar
omochimetaru 11/9/2017 3:30 AM
Cmd + Shift + O か
Avatar
ですです
Avatar
omochimetaru 11/9/2017 3:30 AM
あっ、わかったわかった
3:31 AM
たしかに 鳥のアイコンつけたら Objcヘッダーが Swift 表示になった。
Avatar
@omochimetaru Open Quickly使わずにどうやってプロジェクト内のファイル移動してるの?
Avatar
omochimetaru 11/9/2017 3:31 AM
左のツリーで移動してるよ。
Avatar
すごい
Avatar
ファイル増えると無理ゲーじゃない?
Avatar
omochimetaru 11/9/2017 3:31 AM
(もしかして、私、情弱・・・?
3:32 AM
無理じゃないよ それしかやったことないし
Avatar
Open Quicklyを使いたくない理由も別になさそうな感じね
Avatar
左のツリーの一番下にFilterっていうのがあって
Avatar
omochimetaru 11/9/2017 3:32 AM
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです
これはなんか変ですね、いろいろ再起動すると直ったりして。
3:32 AM
これでファイル名をフワッと入れれば移動できるんか
Avatar
HogeFugaViewController.swiftを開くのにhfvcで行ける以上に楽なファイル移動ないと思う
Avatar
omochimetaru 11/9/2017 3:33 AM
そんな雑なのでいいの
Avatar
ほかにhfvcにマッチするファイルが無ければ一発
Avatar
ファジーでいけるのは楽
Avatar
@tarunon えたるのんもファイルツリーなの
Avatar
omochimetaru 11/9/2017 3:33 AM
マジかあ 練習します
Avatar
二刀流やで
Avatar
まじか
Avatar
omochimetaru 11/9/2017 3:33 AM
ぐぬぬ・・・
Avatar
記憶が頑健じゃないと Open Quick は死ぬ
Avatar
Xcodeで一番使うや
Avatar
omochimetaru 11/9/2017 3:34 AM
ファイルツリーのどこに何が入ってるかは全部頭に入れてるわ
Avatar
ファイルツリーの一番下のFilterのよこっちょに時計マークあるやろ
Avatar
omochimetaru 11/9/2017 3:34 AM
フィルターはときどきつこうてた
Avatar
それ青にすると最近触ったファイルだけがフィルタリングされて便利
Avatar
スイッチオンにしてobjcの.hを開くと空ファイルなので 🤔 な感じです これはなんか変ですね、いろいろ再起動すると直ったりして。
Avatar
ダイアログが出て来る"開く" Cmd + O と OpenQuickly Cmd + Shift + O のキーバインド入れ替えてる
Avatar
omochimetaru 11/9/2017 3:34 AM
それは知らなかった・・・>時計
Avatar
再起動しても同じだった
Avatar
omochimetaru 11/9/2017 3:34 AM
うーんなんででしょう・・・ > kuro さん
3:34 AM
他の人はちゃんと動く?
Avatar
時計の横にある謎の□は、gitと差分のあるファイルが検出される
3:35 AM
この辺すごく便利だよ
Avatar
omochimetaru 11/9/2017 3:35 AM
これは git のアイコンだったのか
Avatar
@omochimetaru なに確認すればいい
Avatar
なんか、最初はswiftに参照をもつ.hを探すのを有効にするみたいな機能かなと思ったけど、違うようでした。 (edited)
Avatar
omochimetaru 11/9/2017 3:35 AM
@hiragram Open Quickly の右にあるトリのアイコンを青くしてから
3:35 AM
OpenQuick;y で ObjC ヘッダーを開くと
3:36 AM
ObjCヘッダーが Swift変換されたものが開かれる
Avatar
そうだね
3:37 AM
そう動いているように見える
3:38 AM
UITableVIewDataSourceでかくにんした
Avatar
omochimetaru 11/9/2017 3:38 AM
🙏 1
3:38 AM
↑録画してみた。
3:38 AM
録画下手すぎて見切れてるけどw
Avatar
わざわざObjcのヘッダ見たいことある?
Avatar
録画ありがとうございます、うーん、いまいち何が便利なのか
Avatar
omochimetaru 11/9/2017 3:42 AM
てかさ、似たような機能で
3:42 AM
swiftのソース編集してる時に
3:42 AM
Cmd + Crtl + ↑ おすと
3:42 AM
Swiftのヘッダーになる
Avatar
ほんとですね
Avatar
これこそ何に使うんだ?
Avatar
あーこれだと、外部に公開されるものが明らかになる?
Avatar
omochimetaru 11/9/2017 3:43 AM
ライブラリ作るときに、ユーザーにどう見えるかがわかるし
3:43 AM
他の人の書いたコードを読むときに
3:43 AM
インターフェースだけまず見通せる
Avatar
これはちょっと個人的には嬉しいです
Avatar
Cmd + Crtl + ↑
Objective-CのInterfaceと実装ファイル行き来する時には多用してました。
Avatar
別ターゲットにあるクラスの定義にジャンプしたときにヘッダが表示されちゃうのときもこれで切り替えられるのかしらもしかして
Avatar
omochimetaru 11/9/2017 3:55 AM
Objective-CのInterfaceと実装ファイル行き来する時には多用してました。
そうですね、 C++ とかでも多用するんで手クセがついていて、うっかりswiftのときに押したら発動して発見w
🐶 1
Avatar
Cmd + Crtl + ↑ は棚からぼたもちでした。ありがとうございました!
🙂 1
Avatar
swift-3.1.1-RELEASEツールチェインはXcode 8.3が入ってないと使えないのね…
Avatar
Convert > To Current Swift Syntax… でXcodeがクラッシュする条件はなんだろう?
Avatar
特定難しそう
Avatar
プロジェクト内のPlaygroundを削除したら落ちなくなった。
Avatar
あーーーー
12:49 AM
Playgroundで落ちる、ありましたありました
12:50 AM
RxSwiftもいっときPlaygroundあるからプロジェクト開けすら無いことがあった
Avatar
Playgroundの参照をxcodeprojからxcworkspaceへ移すと、とりあえずそのプロジェクトへ依存するワークスペースでは落ちなくなる。
Avatar
omochimetaru 12/5/2017 8:19 AM
Xcode9.2でアプリの申請しようとするとbeta版とか言われる件について・・・。なぜ正式版で配布はじめたし。Xcode古いの落とすかなぁ。。。
8:19 AM
今日配信されてるやつこんなツイートあるけど通常どおり申請できた方も居るだろうか?
8:21 AM
しかもConditional conformance が通るらしい。 from #waiwai-swiftc
Avatar
かっくん 12/5/2017 8:21 AM
しかもConditional conformance が通るらしい。 from #waiwai-swiftc
Swift 4.1 devなのでこれはまだ通らないはずですっ
Avatar
そのうち通るだろうと思って5分おきにpilot uploadしてるけどinvalid toolchainです
Avatar
omochimetaru 12/5/2017 8:23 AM
5分おきw
Avatar
cond confは通らない、エッと思って今確認した
Avatar
omochimetaru 12/5/2017 8:23 AM
なるほど。
Avatar
$ swift -version Apple Swift version 4.0.3 (swiftlang-900.0.74.1 clang-900.0.39.2) Target: x86_64-apple-macosx10.9
Avatar
なんかAutolayoutの挙動が怪しくて体調悪くなってきたんですが同じ状態の人います?
Avatar
カスタムツールチェーン 有効にしちゃっているだけじゃないかな?
Avatar
omochimetaru 12/5/2017 8:23 AM
ああ、xcodeじゃなくて、 @かっくん さんの書き込みは、4.1-dev snapshotのことでしたか。
👌 1
Avatar
なるほど
Avatar
omochimetaru 12/5/2017 8:24 AM
AppStore申請が通らない件は @banjun さんもってことは本当っぽいですねえ
Avatar
いつもの、iTunes Connect側の対応が遅れてるだけじゃないかなぁと思ってますけど、他の怪しさもあるとすると謎ですね
Avatar
Xcode 9.2 app uploading broken? | Apple Developer Forums https://forums.developer.apple.com/thread/93253
8:25 AM
みんな困ってるみたいですねー 😫
😫 1
Avatar
betaじゃなくても、macOSが上がった日にビルドして出すとinvalid toolchainだったりするので、明日にはいけるのかと
✨ 1
Avatar
omochimetaru 12/5/2017 8:27 AM
なるほど、わりとよくあるんですね
Avatar
Auto Layout殺そう
Avatar
かっくん 12/5/2017 8:27 AM
出た殺すマン
Avatar
イェア
Avatar
Xcode9.2でSwiftを並列コンパイルしてくれるようになる裏設定(前からあったやつとの違いは不明) defaults write https://t.co/vp7sgv3Eck.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool YES https://t.co/n6Lhv0v9IH
Avatar
[09:40:02]: --- Successfully uploaded package to iTunes Connect. It might take a few minutes until it's visible online. ---
5分おきpilot uploadがとおった
😹 1
👏 5
Avatar
TestFlightまで通りました ✈
🎉 1
Avatar
状況的には、GM版出た直後に数時間、申請受付不可な時間がありますが、それに似た感じでしたかね( ´・‿・`)
Avatar
たぶん、それとおなじ、 い つ も の、って感じだと思います
😂 2
Avatar
norio_nomura 12/6/2017 2:17 AM
これ気になる https://twitter.com/usagimaruma/status/938062738550427653 リリースノートが間違ってて、正しい試し方は defaults write com.apple.dt.Xcode BuildSystemScheduleInherentlyParallelCommandsExclusively -bool NO らしいよ。 https://twitter.com/rballard/status/938216933303885824 (edited)
The Xcode 9.2 release notes mentioned an experimental feature that may improve Swift build times, enabled with the "BuildSystemScheduleInherentlyParallelCommandsExclusively" user default. Unfortunately, we documented this incorrectly. Set it to "NO", not "YES", to try this out.
👀 1
Avatar
あら、そうなんですね
Avatar
xcode 9.2 が正式リリースされちゃったから xcode 9.2 beta ってもうダウンロードできないですかね? Apple Dev のダウンロードのところだと、beta と書かれたのはみつけられず…
Avatar
Kishikawa Katsumi 12/6/2017 2:28 AM
過去の正式リリースされたXcodeはすべてダウンロードできますが、Betaは無理ですね。
Avatar
やっぱそうですよね。ありがとうございます。
Avatar
非公式ならありそうだけど…怖い
Avatar
Kishikawa Katsumi 12/6/2017 2:31 AM
たぶんベータをすべて手元に残している人はけっこういると思いますね。SDKとかデベロッパーツール系に携わってる人など。 (edited)
👀 1
Avatar
Xcode 9.2 になりましたが、XVim2 の存在を忘れていて無事死亡
Avatar
Xcode9.2でsubmitできないみたいなの聞いてアップデート延期してる
10:12 AM
DTXcodeBuildの値をいじらないと Xcode9.2でsubmitできないんだと。ひどすぎる / “ios - Xcode 9.2 Upload to App Store fails with description l…” https://t.co/EkcCBOttU3
Avatar
AppCode いいですよ
Avatar
Xcode9.2問題は解決したとおもう
Avatar
お、そうなん。
Avatar
おお、そうなんですか
Avatar
このスレの過去ログを遡ると解決したとあります > [09:40:02]: --- Successfully uploaded package to iTunes Connect. It might take a few minutes until it's visible online. --- 5分おきpilot uploadがとおった
Avatar
【Mac】Xcode付属のファイル比較ソフトFileMerge http://www.atnr.net/filemerge/
Macでファイルの差分を調べるソフトFileMergeを紹介します。Xcodeをインストールしていれば誰でも使うことができます。 HTMLやCSSなどのテキス
6:07 AM
これ知らなかったんですが、便利ですねー(わりと有名?)
Avatar
ここにありますー
Avatar
あぁ、そこからも起動できたんですね!ありがとうございます
6:09 AM
ちなみに、この差分を見るために使ってみました https://developer.apple.com/news/?id=12202017a
The App Store Review Guidelines have been updated. We review all apps submitted to the App Store in an effort to determine whether they are...
Avatar
6:11 AM
普段はこれで済むことが多いですけどそれ以外の時はそれ便利そうですね
Avatar
この前発表があったPre-Orderなどの項目が追加になってました>アプリレビューガイドライン
👀 1
6:12 AM
@omochimetaru ですねー!
Avatar
ちなみにそれ使いたい時は自分はいつもSpotlight開いてfilem まで打って立ち上げてます
👍 1
Avatar
僕は https://www.kaleidoscopeapp.com を愛用しています( ´・‿・`)
Easily spot the differences in text and image files. Review changes in seconds with the world's most advanced iOS and Mac diff tool.
👀 4
✋ 1
6:52 AM
有料ですが 🐶
Avatar
Kaleidoscopeいいですね、めっちゃ高いですが画像比較かなり使えます
Avatar
おおっ 画像比較すごそう
Avatar
FileMergeはディレクトリ比較がKaleidoscopeよりも使いやすいので、opendiff /Applications/Xcode-beta.app /Applications/Xcode.appとかやりますね。
😮 2
Avatar
FileMergeはファイル比較前のプリプロセッサを自由に設定できるのが地味に便利。
Avatar
なんと、ディレクトリ比較もできるんですね・・!
Avatar
func testA(_ i: Int) -> Int { return i + 1 } func testB(_ i: Int) -> Int { return i + 1 } func testC() { let array = [0, 1, 2] let a = array.map { testA($0) } let b = array.map(testB) } testAのcallersはtestCtestBのcallersは無しになるのが何か釈然としない…… callerじゃないと言われればそうなんですが
Avatar
Kishikawa Katsumi 1/16/2018 7:42 AM
確かに。Xcodeにバグレポーとしたらいいと思います。
Avatar
omochimetaru 1/16/2018 7:42 AM
その解析は難しそうだなあ・・・
Avatar
単純に参照があったらカウントみたいにできないですかね?
Avatar
omochimetaru 1/16/2018 7:43 AM
参照箇所としてはそれで見れる
7:43 AM
呼び出してるとは限らない
Avatar
まぁそれは確かに
Avatar
callerじゃないにしても参照したっていうのを見たいんじゃないかな
Avatar
となるとcallersに含まれないのがおかしい じゃなくて 参照を一覧できる機能が欲しい になるのでバグ報告には不適ですね
Avatar
Kishikawa Katsumi 1/16/2018 7:46 AM
呼び方はバグでも機能リクエストでもどちらでもいいと思いますが、testBのCallersでtestCが出てきてほしいというのは自然だと思います。
7:46 AM
そうじゃないと何らかの見落としが起こって困るということですよね。
Avatar
そうですね。 今見てたとこは他に呼び出しがなくてcaller無しになってて気付いたんですが
Avatar
caller って Find Call Hierarchy のことですか?
Avatar
Kishikawa Katsumi 1/16/2018 7:48 AM
コードエディタの左上角のボタンじゃないですかね。
Avatar
僕はそっちから見てましたね>左上角
Avatar
omochimetaru 1/16/2018 7:49 AM
左上のボタン、「Ctrl + 1」でいつも使ってる
Avatar
なるほど。こっちからなら見えるので、機能要望だすと良いと思います。
Avatar
omochimetaru 1/16/2018 7:51 AM
マジか
Avatar
いや見えないと思いますよ
Avatar
これ文字列検索では
Avatar
呼び出し階層として見たいというのが今の話なので
Avatar
omochimetaru 1/16/2018 7:51 AM
いや、 Text じゃなくて Referencesのほうは
Avatar
オッ
Avatar
omochimetaru 1/16/2018 7:52 AM
Sema考慮なんじゃね
Avatar
ああこれはReferenceで見てるのか
Avatar
omochimetaru 1/16/2018 7:52 AM
Find > Call Hierarchy ってやつもあるみたいだ
Avatar
testB(_:) でも効くので、sema 考慮してると思います。
Avatar
なるほど。これでレポート書く意義が消滅しました。
🙄 1
Avatar
class C { static func testA(_ i: Int) -> Int { return i + 1 } static func testB(_ i: Int) -> Int { return i + 1 } } func testC() { let array = [0, 1, 2] let a = array.map { C.testA($0) } let b = array.map(C.testB) } いや、これで効かなくなっちゃうので、使えない。
Avatar
class C.testB(_:) ではなくて C.testB(_:) なら見えるのかー。 "Call Hierarchy" と文法が違うのがなんとも。。。
Avatar
そっちだと見えますね
8:03 AM
連続で検索してるとクエリが更新されてなかったり検索結果が更新されてなかったりしてよく分からなくなってくる
Avatar
もとい、 コンテキストメニューから "Find Call Hierarchy" したときの文法と違うのがイケてない。
Avatar
これ別にclassって付けなくても検索できるんでそっちで良い気が……
Avatar
コンテキストメニューから "Find Selected Symbols in Workspace" や "Find Call Hierarchy" したときに、 class がついちゃうというバグなのかも。
Avatar
シミュレーターでもテストでも普通に動くコードなのに、Playgroundだけなぜか error: Execution was interrupted, reason: EXC_BAD_ACCESS のエラー出るんですけど理由はなんでしょう?というかPlaygroundのデバッグってどうすればいいんでしょう?
Avatar
とりあえず現象を再現するもののブランチを作っときました、Testからコピーした全く同じコードだけど、Testは普通に成功するのになぜかPlaygroundだけEXC_BAD_ACCESSが出てクラッシュします 🤔 https://github.com/el-hoshino/NotAutoLayout/tree/Playground-Bug
NotAutoLayout is a framework to help you layout subviews without Auto Layout constraints.
Avatar
Kishikawa Katsumi 1/24/2018 4:44 AM
私の環境だとPlayground動いてますけど何か再現させる条件他にありませんか?
4:44 AM
Avatar
ツールチェイン?
Avatar
Kishikawa Katsumi 1/24/2018 4:47 AM
う、4.1のツールチェーン選択したらXcodeが起動しなくなっちゃった。
🙇 1
4:48 AM
いずれにしても、今回の問題は何か環境の違いによるものっぽいですね。
4:49 AM
Crashed Thread: 3 Dispatch queue: -[IDEPlaygroundAuxiliarySourceCompilationManager init] :: NSOperation 0x7f9bf9467890 (QOS: BACKGROUND)
4:49 AM
これで起動時にクラッシュするようになってしまった。。。
Avatar
起動時にプロジェクト開くか開かないか聞かれる気がする
4:51 AM
最悪Playgroundファイルを削除すれば助かると思います
Avatar
Kishikawa Katsumi 1/24/2018 4:52 AM
うっす。まあクラッシュログがおもしろいのでこれはこれでもうちょっと様子を見てみます。
4:53 AM
Application Specific Information: ProductBuildVersion: 9C40b ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/DVTFrameworks/DVTFrameworks-13763/DVTFoundation/Utilities/DVTTask.m:242 Details: The launch path must be set before launching. Object: <DVTTask: 0x7f9c111cc450> Method: -launchRunningTerminationHandlerOnQueue:error:terminationHandler: Thread: <NSThread: 0x7f9c07b87800>{number = 5, name = (null)} Hints: Backtrace: 0 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit) 1 _DVTAssertionHandler (in DVTFoundation) 2 _DVTAssertionFailureHandler (in DVTFoundation) 3 -[DVTTask launchRunningTerminationHandlerOnQueue:error:terminationHandler:] (in DVTFoundation) 4 -[DVTTask launchReturningError:] (in DVTFoundation) 5 -[IDEPlaygroundAuxiliarySourceCompilerOperation main] (in IDEFoundation)
4:54 AM
Playgroundはmktmpに*.playgroundに書いたソースコードをPlayground用に改変を加えて書き出して、それを何か特殊な仕組みで実行しているんですけど、それがたぶんIDEPlayground〜っぽいですね。
Avatar
ツールチェインでPlaygroundを動かすための某が足りてないと動かない、という話は前に聞いた気がする
Avatar
Kishikawa Katsumi 1/24/2018 5:04 AM
とりあえず復旧させました。元のXcode 9.2に付属のツールチェーンだと動いてます。問題の現象はXcodeのクラッシュじゃなくてEXC_BAD_ACCESSということなので別の問題があると思いますが、少なくともPlagroundのコードとworkspaceの構成に致命的な問題があるということはなさそうです。
Avatar
自分の環境ですとこれですね… 🤔
5:30 AM
しかも3台も同じ現象で、SierraとHigh Sierraも同じです… 🤔
5:36 AM
一回ローカルのプロジェクト削除してGitHubから落とし直してみます
Avatar
Kishikawa Katsumi 1/24/2018 5:45 AM
^ そのコードも実行できましたね。さっぱりわからない。
Avatar
落とし直してみてもダメでした 🤔
6:04 AM
あすみません、念のためですが岸川さんは Playground-Bug というブランチを落としてますでしょうか?
Avatar
Kishikawa Katsumi 1/24/2018 6:04 AM
ブランチが違いますね。
Avatar
やはりか、おそらくそのブランチが feature/#40- のブランチしか発生しないはずかと思われます
Avatar
Kishikawa Katsumi 1/24/2018 6:07 AM
ブランチ切り替えてやり直してみます。コードを減らしていって、原因を突き止めるっていうのはよくある手法ですけど、これファントムタイプでこれ以上減らすのは難しいっぽいですね。
Avatar
一応最終的に LayoutMaker<Layout> という型を作るところで確実にPlaygroundでは落ちる、というところまではなんとか突き止めましたが、原因がなんなのかがさっぱり…
6:09 AM
そもそもTestも通ってるのにorz
Avatar
Kishikawa Katsumi 1/24/2018 6:09 AM
お、再現しました。ちょっと別のことするのでまたあとで触ってみますけど、私がここから調べるならとりあえず再現するコードとしないコードがあるので、git bisectしてみますかね。
6:10 AM
Playgroundだからちょっと手間ですけど。
Avatar
ありがとうございます!ただ正直 feature/#40- の修正のコミットが修正量が膨大ゆえにかなり雑で…💦
6:11 AM
(ファントムタイプを取り入れることでほぼ一から作り直してるようなものになっちゃってorz
Avatar
Kishikawa Katsumi 1/24/2018 6:15 AM
確かに大きな変更ですねえ。各コミットはそれぞれビルドできて動きます?それならとりあえずどこで問題が起こるかをgit bisectで突き止めるのはとっかかりにはなりそうですけど、各コミットが動かないのならまずそれが難しいですね。
Avatar
それがほとんどのコミットは実は動かないです、時間あるときにとりあえずできるところまでやってコミットしてプッシュしちゃってたのでorz
6:16 AM
(時間あるときにちゃんとRebaseしてコミット整理し直した方が良さそうですね…
Avatar
Kishikawa Katsumi 1/24/2018 6:17 AM
なるほど。じゃあPlaygroundのコードから追っていく方がいいかな。。。
Avatar
そうですね、申し訳ありませんorz
Avatar
Kishikawa Katsumi 1/24/2018 6:28 AM
ここから調べるなら地道にprintデバッグですね。呼ばれてるメソッドにprint()をちりばめて再ビルドして実行する、って感じです。パッとみてstoreHeightメソッドでmaker変数をシャドーイングしてるのが怪しいかと思いましたが全然関係なかったです。 (edited)
Avatar
public struct LayoutMaker<Property> { unowned let parentView: UIView let didSetProperty: Property } の unowned をはずしたらとりあえず動きました。
😍 1
Avatar
Kishikawa Katsumi 1/24/2018 6:32 AM
ああそれっぽい。
6:34 AM
なぜかmaker.parentViewは成功するけどそれ以外でmakerを触ろうとするとクラッシュするので何かmaker変数が壊れてるんだろうなという風に見えるので。
6:36 AM
直接の原因としては解放済みのオブジェクトにアクセスしてることだと思うので、リリースビルドしたり条件を変えるとPlaground以外でも再現しないですかね?で、たぶん本当の原因はそれが解放済みになってしまうことなのでそれを直すことかと。
6:36 AM
@rintaro 素晴らしい👏🏻
Avatar
@rintaro @Kishikawa Katsumi ありがとうございます!!ということはおそらくPlaygroundのUIViewの生存期間と関係あったりするようなイメージでしょうか?
6:39 AM
(あれでも昔から parentViewunowned だったのにな… 🤔
Avatar
Kishikawa Katsumi 1/24/2018 6:40 AM
どうかなあ。Playgroundでもこのクロージャが実行される間はビューは生きてると思いますけど。同期的に実行されるクロージャですよね。
Avatar
あ昔は Layout 作ったらもう別の型に直して parentView 要らなくなったんですねそういえば
6:41 AM
同期的に実行されてるはずですね
Avatar
Kishikawa Katsumi 1/24/2018 6:41 AM
あ、よくみたらunowned parentViewか。私はmakerが壊れてると思ったんですけどね。
Avatar
@escaping はしてないので
6:42 AM
あ、 @escaping してる…!?
6:44 AM
あそうかそうですもんねレイアウトサイクルに入らないとレイアウト計算しないから @escaping しないとおかしいですもんね確かに…
6:44 AM
あくまでレイアウト計算の計算式しか作ってないですから
Avatar
Kishikawa Katsumi 1/24/2018 6:45 AM
なるほど。ここで返してるmakerが実際にビューのlayoutXXX()メソッドが呼ばれた時点でレイアウトを実行するという感じですか。 (edited)
6:47 AM
でもクラッシュしていたのはstoreHeightメソッドの途中ですよ、たぶん。
Avatar
そうですね、ただこのメソッドに限っていえば作った瞬間にもうレイアウト計算はさせてるはずなのでどっちかというと同期的に実行されてるはずのように思われますが1サイクル遅れてるかもしれません
6:47 AM
storeHeight の時点で LayoutMaker<Layout> が作れますので
6:48 AM
あ、今度はEXC_BAD_ACCESSはなくなりましたがLive Viewが表示されず Fatal error: Failed to get current view: file /Users/x_shi/Documents/Crazism/NotAutoLayout/NotAutoLayout/NotAutoLayout/LayoutEvaluations/FrameAdditionalEvaluation.swift, line 156 のエラーになりました 😇
Avatar
Kishikawa Katsumi 1/24/2018 6:49 AM
それはさっきのコードで再現します?
Avatar
さっきのコードはLiveView代入してないので、Playground-Bug ブランチのPlaygroundのコードの下にある元々コメントアウトされたコードを生かせば再現します
6:53 AM
理由は多分 unowned の時と同じ、weak currentView にアクセスしようとしていて落ちました
Avatar
LayoutControlling.swift public func makeLayout(_ making: (LayoutMaker<InitialLayoutProperty>) -> LayoutMaker<Layout>) -> Layout { print("makeLayout() begin") let maker = LayoutMaker(parentView: self.body, didSetProperty: InitialLayoutProperty()) print("makeLayout() self.body: \(self.body)") print("makeLayout() maker.parentView: \(maker.parentView)") print("makeLayout() maker: \(maker)") このコードで、 最後の行がプリントされずに落ちるので、Mirror 絡みのバグな気がします。
Avatar
LayoutMaker はそもそも CustomStringConvertible に準拠してないから print できないはずなのではないでしょうか?
Avatar
omochimetaru 1/24/2018 6:56 AM
"()" は CustomStringConvertible 非対応でも使えるよ
Avatar
Kishikawa Katsumi 1/24/2018 6:56 AM
StringInterpolationは (edited)
6:56 AM
は何でもプリントできる。
Avatar
なるほど
Avatar
omochimetaru 1/24/2018 6:57 AM
CustomDebugStringConvertible, StringPrintable の順にためして、それでもだめだと リフレクションでダンプされる
Avatar
Kishikawa Katsumi 1/24/2018 6:57 AM
表示内容をカスタマイズしたいときにCustomStringConvertibleを使う感じ。 (edited)
Avatar
CustomPlaygroundQuickLookable < 僕もいるよ
Avatar
ふむふむそういうことですね、自分もこの前 print("maker: \(maker)") 使おうとして落ちてたから CustomStringConvertible に対応してないから落ちたかと思いました
Avatar
omochimetaru 1/24/2018 6:58 AM
TextOutputStreamか
6:58 AM
それで落ちる世界線やばない
Avatar
もしかして今のSwiftまだファントムタイプ使わない方が安全だったりします?
Avatar
Kishikawa Katsumi 1/24/2018 6:59 AM
ファントムタイプだからどうということはないと思います。
7:01 AM
状態の数だけ型ができるので、シンプルなコードより何か起こる確率は上がるかもしれませんが、それはファントムタイプに特有のことではないと思うので。
Avatar
なるほど
Avatar
なるほど再現した。 import Foundation class C: NSObject { } struct D { unowned let x: C } let c = C() let d = D(x: c) (edited)
Avatar
さすが
Avatar
omochimetaru 1/24/2018 7:06 AM
へえ〜〜
Avatar
@objc なオブジェクトを unowned で持つ struct を Playground が Mirror しようとすると落ちる。ということかな。
Avatar
しかも NSObject 継承しないと再現しないと
Avatar
「Playgroundが」は嘘ですね。最後の行 print(D(x: c)) でコマンド実行 swift test.swift でも再現するので。 (edited)
Avatar
Kishikawa Katsumi 1/24/2018 7:15 AM
macOSだけっぽいですねえ。Linuxだと起こらない。
Avatar
あ、シミュレーターでもこれは落ちますね class C: NSObject { } struct D { unowned let c: C } class ViewController: UIViewController { override func viewDidLoad() { super.viewDidLoad() // Do any additional setup after loading the view, typically from a nib. let c = C() let d = D(c: c) print(d) } }
Avatar
Kishikawa Katsumi 1/24/2018 7:15 AM
そしてmacで実行すると、D(x: (lldb) のように本当に直前までプリントされてクラッシュする。 (edited)
7:19 AM
ま、バグレポートですね。NotAutoLayoutについてはparentViewが外から触られることはないから、無理に直さなくてもいいかな。。。?
Avatar
今バグレポ出しました、とりあえずPlayground用に unownedweak プロパティーを一時的に通常プロパティーにします
7:23 AM
@rintaro @Kishikawa Katsumi Qiitaでこの現象のまとめを記事にしようと思ってますが、いただいた各種ソースコードをQiitaに貼り付けても大丈夫ですか? (edited)
👌🏻 2
☺ 1
Avatar
別の人にメンション送ってる気がする。。。 😅
💦 1
Avatar
https://bugs.swift.org/browse/SR-5289 一応既知でした。
👍 1
Avatar
本当だ今気づいた 😇 >メンション
Avatar
遅くなりましたが記事書きました https://qiita.com/lovee/items/56555e3c7cf880a44efd

TL;DR

下記のようなコードは落ちます: ```swift import Foundation class C: NSObject { } struct D { unowned let x: C } ...
👍 3
Avatar
norio_nomura 1/28/2018 8:40 AM
Xcode 9.3 beta 1でcode coverageを表示すると高確率でXcodeがクラッシュする…
😱 1
Avatar
omochimetaru 1/30/2018 4:51 AM
xcodeprojを機械的に編集する方法について調べた コマンドラインツール。Xcode.appの内部フレームワークを無理やりロードしてモデルを叩くアプローチが楽しいけどXcode9では動かなかった。保守停止。 https://github.com/0xced/xcproj pythonのライブラリ。保守されてるけど、どこで使われてるのかわからなかった、気になる。 https://github.com/kronenthaler/mod-pbxproj Rubyのライブラリ。CocoaPodsで使われてる。 https://github.com/CocoaPods/Xcodeproj Swiftのライブラリ。最近話題を見るツールの XcodeGen が内部で使ってる。 https://github.com/xcodeswift/xcproj ↑を内部で使うコマンドラインツール。機能は少ない。 https://github.com/xcodeswift/xctools SwiftPM内部の generate-xcodeproj のためのモジュール。 ファイル名に () がついててビックリした。 限られた生成機能しか無さそうだった。 https://github.com/apple/swift-package-manager/tree/master/Sources/Xcodeproj
xcproj - Command line tool for manipulating Xcode project files
mod-pbxproj - A python module to manipulate XCode projects
Xcodeproj - Create and modify Xcode projects from Ruby.
xcproj - Swift library for reading and writing Xcode projects
xctools - Handy command line tool for Xcode
4:53 AM
#swiftpm に書いたんだけど、SwiftPMの機能が若干足りないので、ラッパーでxcodeprojをちょっと編集すると良さそうだなと思っていて、↑の感じからすると、自分の用途だと、xcprojベースのxctoolsに機能追加のパッチを出すと一番良さそうな感じだった
Avatar
Kishikawa Katsumi 1/30/2018 4:53 AM
@omochimetaru xcodeprojってただのplistだからちょっとパッチを当てたいとかいう場合は自分で書いた方が楽だったりしますよ。 (edited)
4:54 AM
xctoolsを改善していくというのはそれはそれで良いと思います。
Avatar
omochimetaru 1/30/2018 4:54 AM
$ cat Makefile .PHONY: clean build test clean: swift package clean build: swift build test: swift test xcode: swift package generate-xcodeproj
4:55 AM
いまこんな感じにしていて、 make xcode に後段処理を追加したいんですけど、 plist 編集をちょっとやるパッチを、どのアプローチで書くかが悩ましいです
4:56 AM
そのパッチのインストールをややこしくしたくないし・・・
Avatar
Kishikawa Katsumi 1/30/2018 4:56 AM
swiftのスクリプトをさっと実行するようにしたらいいんじゃないかな。
4:57 AM
私は書き換えはしてないけど、プロジェクト構成を読み取るのはやる必要があって、
Avatar
omochimetaru 1/30/2018 4:57 AM
そうですね、 #swift-zatsu に書いたんですけど、 swiftのスクリプト実行基盤ツールがいろいろあるんですけど、 それをつかって、 ↑の xcproj を import しつつスクリプトで書くと楽かな?とか検討中です
Avatar
Kishikawa Katsumi 1/30/2018 4:57 AM
すごい適当に書いている。
Avatar
omochimetaru 1/30/2018 4:57 AM
うおおおインデントwww
4:58 AM
let pbxproj = try? PropertyListSerialization.propertyList(from: pbxprojData, options: [], format: nil) ↑型無しならこれだけでパースはできるってことですね〜
Avatar
Kishikawa Katsumi 1/30/2018 4:58 AM
けどプログラムから最低限扱える構造で読み取るのはPropertyListSerializationがやってくれるので、あとは対象を捕捉して変更して書き出す、だけだと思う。 (edited)
4:58 AM
そう。
Avatar
omochimetaru 1/30/2018 4:58 AM
まあそうですね〜そっちのほうが依存とか増えないしちょろっと書けそうですね
Avatar
/usr/libexec/PlistBuddy ではどうにもならないですか?
Avatar
Kishikawa Katsumi 1/30/2018 5:00 AM
Codableでマッピングしたら綺麗になると思うんだけど不要な部分も多いのでやってない。xcodeprojの構造はとにかくRefIDをたどっていくという形になっているので、
5:01 AM
ああ、PlistBuddyだとクエリで検索してそのままそれを更新できるからもっと簡単にできそう。
Avatar
omochimetaru 1/30/2018 5:02 AM
PlistBuddy知らなかったです、jqみたいなやつですね
5:02 AM
ID引いてオブジェクトプールから参照するみたいな構造があるからやるとしたらPlistBuddyを何度か叩く感じかな
Avatar
Kishikawa Katsumi 1/30/2018 5:02 AM
ただ、変更箇所のクエリを作るためにはまずデータをトラバースして構造を理解する必要があると思うので、Swiftでなぞってみるといいと思います。
Avatar
norio_nomura 2/5/2018 5:06 AM
Xcode 9.3 beta 1では出ない warning: 'flatMap' is deprecated: Please use compactMap(_:) for the case where closure returns an optional valueswift-4.1-DEVELOPMENT-SNAPSHOT-2018-02-01-aで出る。 (edited)
Avatar
norio_nomura 2/5/2018 5:34 AM
Xcode 9.3 beta 1とスナップショットの違いではなく、-swift-version 3の有無が原因だった。 (edited)
5:35 AM
https://github.com/apple/swift/blob/master/stdlib/public/core/StringRangeReplaceableCollection.swift.gyb#L566-L574 extension Sequence { @_inlineable // FIXME(sil-serialize-all) @available(swift, obsoleted: 4) public func flatMap( _ transform: (Element) throws -> String ) rethrows -> [String] { return try map(transform) } } (edited)
swift - The Swift Programming Language
5:39 AM
-swift-version 4だとこのflatMapが無くなって、deprecatedな方が使われるから。
Avatar
omochimetaru 2/7/2018 7:04 AM
xcprojというライブラリを使ってxcodeprojを書き換えてみた。まあまあ型がついてるのでわかりやすかった。 https://github.com/xcodeswift/xcproj https://gist.github.com/omochi/2a2ebe3cf99a1e5a63fbf6a38c587dc6
xcproj - Swift library for reading and writing Xcode projects
Avatar
norio_nomura 2/8/2018 12:42 AM
Xcode 9.3 beta 2のリリースノート ## Resolved in Xcode 9.3 beta 2 – IDE ### Build System - Prevented Spotlight from indexing the module cache folder for builds by renaming the folder to `ModuleCache.noindex` which results in an improvement in overall build performance. (35212165) これ何だろう? ~/Library/Developer/Xcode/DerivedData/ModuleCacheはそのまま残ってるけど。 (edited)
Avatar
norio_nomura 2/13/2018 2:32 AM
📝 メモ: Xcode Source Editor Extensionでエラーメッセージを提供するには、CustomNSErrorに準拠しNSLocalizedDescriptionKeyにメッセージを持ったerrorUserInfoを返すErrorcompletionHandler()に渡す。 https://github.com/norio-nomura/SwiftLintForXcode/pull/10
2:37 AM
LocalizedErrorに準拠してerrorDescriptionでメッセージを返す方法も、NSErrorへキャストした時にlocalizedDescriptionを提供するけど、Swiftでしか動かずXcodeは使ってくれない。 import Foundation struct MyError: Error, CustomNSError { var errorUserInfo: [String : Any] { return [NSLocalizedDescriptionKey: "NSLocalizedDescriptionKey"] } } let myError = MyError() as NSError print(myError.localizedDescription) // "NSLocalizedDescriptionKey\n" struct MyError2: LocalizedError { var errorDescription: String? { return "errorDescription" } } let myError2 = MyError2() as NSError print(myError2.localizedDescription) // "errorDescription\n" (Swiftのみ) (edited)
Avatar
そんなぁ
Avatar
Xcodeの⌥押してRectで選択するやつのCopyPasteがめちゃんこ賢くなっててため息出た
Avatar
omochimetaru 2/27/2018 4:56 AM
Image Literal がエディタ上で 山の絵文字みたいなやつしか出なくて
4:56 AM
サムネイルが出ないから何が設定されてるかさっぱりわからないんだけど
4:56 AM
なんか設定で直せる?
Avatar
Kishikawa Katsumi 2/27/2018 4:57 AM
特に関連する設定はないと思いますね。Derived Dataを消してみるとかそういうのを試すくらいかと思います。
Avatar
omochimetaru 2/27/2018 4:58 AM
なるほど、何か手元でのエラーなんですね。自分のところだけか。
Avatar
Playgroundだとサムネが出てくる試しがない
Avatar
Kishikawa Katsumi 2/27/2018 5:01 AM
とりあえず、Assets.xcassetsに入ってる画像の名前をいきなりタイプして補完出ますか?
Avatar
omochimetaru 2/27/2018 5:01 AM
画像ファイル名は補完では出てきて、補完ウィンドウではサムネイルが出ます
5:01 AM
でも、Assets.xcassetsには入れてないです。直接リソースとして突っ込んでます。
5:02 AM
補完から確定すると 山の絵みたいな文字になる。
Avatar
Kishikawa Katsumi 2/27/2018 5:02 AM
直接リソースとして入れた場合って、そもそも考慮されてるのかな。それで動いてはいるんですよね?
Avatar
omochimetaru 2/27/2018 5:02 AM
動いてたはずだけどちょっと確認してきますw
Avatar
Kishikawa Katsumi 2/27/2018 5:03 AM
動くのはたぶん合ってると思うんですけど、Xcodeのエディタはxcassetsの中しか見ないという気がしますねえ。
Avatar
なるほど、確かに Assets.xcassets に入れないとサムネ出てこないですね
5:06 AM
5:06 AM
だからPlaygroundでは出てこないのか
Avatar
omochimetaru 2/27/2018 5:07 AM
動くのは確認できました。なるほど・・・?
5:07 AM
↑そうそう、その山w
Avatar
プレグラのResourcesにAssetぶち込んだら見えないかしら
Avatar
omochimetaru 2/27/2018 5:07 AM
xcassetsを使うのが良いんですね、これ全然使ってなかったんで気づきませんでした、ありがとうございます
Avatar
Kishikawa Katsumi 2/27/2018 5:09 AM
イメージリテラルは最終的にはUIImageのなんとかというイニシャライザが呼ばれるだけなので、使えるのはわかる。 そして、エディタのサポート具合が異なるのもエディタに表示する段階では実行してるわけではないので理解はできる。 (edited)
5:09 AM
ただまあ不具合でいいんじゃないでしょうか。
Avatar
omochimetaru 2/27/2018 5:13 AM
xcassetに移したらサムネイルが出ました。
😢 1
5:13 AM
ソースコード上に書き込まれてるリテラルは名前だけみたいですね
Avatar
Xcode 9 で演算子や subscript への command クリック で定義に飛べなくなったので出来ない物だと思ってたら、右クリックメニューには普通に Jump to Definition あることに今更気づいて悲喜交交。
Avatar
omochimetaru 3/5/2018 12:55 PM
そういえば最近飛べないな〜って思ってたからそれかも・・・
Avatar
うおほんとだ。 演算子飛べなくて面倒なことがあった気がするので助かります(cmdクリックのほうが良いのはともかく)
Avatar
⌘ + Ctrl + j で飛ぶ派ですね。 エラーになれば、Xcode変な状態なんだなって思ってるので ⌘ + Shift + O で検索。
👍 2
Avatar
Playground、platformをmacOSにするとiOSに比べて上手く動くことが多い気がする(気がする)
Avatar
omochimetaru 3/6/2018 9:44 AM
iOSの場合、裏でiOS Simulatorが立ち上がってるみたいなんで、それかもですね
Avatar
感じますね
Avatar
Xcodeが変な状態だった場合は⌘⌥^Xで強制再起動が走るようにBTT設定してる
Avatar
Kishikawa Katsumi 3/6/2018 10:11 AM
Xcode再起動のショートカット。。。
10:12 AM
気持ちは理解します。
Avatar
⌘⌥^⇧XだとDerivedDataが消えて再起動です
😇 3
10:12 AM
捗る~~
Avatar
omochimetaru 3/6/2018 10:12 AM
wwww
Avatar
killall Xcode 2> /dev/null;sleep 1; rm -rf ~/Library/Developer/Xcode/DerivedData/; open /Applications/Xcode.app
Avatar
Kishikawa Katsumi 3/6/2018 10:13 AM
私はけっこうUndo履歴を使うので真似はできないですけど。
Avatar
Undo履歴消滅してしょんぼりすること結構ある
Avatar
Kishikawa Katsumi 3/6/2018 10:14 AM
Undoが遅くなるの全然問題ないんで、ディスク使って無限Undoにしてほしいですね。
Avatar
JetBrain製品は文明が進んでて
10:16 AM
ディスク履歴を勝手にgitっぽく作ってくれますね
10:16 AM
なので困ったときはそこを見ると大体救われる
Avatar
Kishikawa Katsumi 3/6/2018 10:34 AM
なにそれ。。。求めていたものな気がする。
Avatar
Undo履歴消滅しょんぼりもそうだけど、githubにあげてるやろ~~で作業ディレクトリ全部消して作業が見つからなくなることが年数回ほどある
Avatar
Kishikawa Katsumi 3/6/2018 10:43 AM
タイムマシンがあるとそのうちのいくつかは救われると思います。
Avatar
DownloadsフォルダをTimeMachine除外してて、作業ディレクトリがDownloads上にあって…みたいな悲劇がありました 😿
10:44 AM
TimeMachine自宅は設定してるけどギョムのPCは設定してないなぁ
Avatar
omochimetaru 3/6/2018 10:44 AM
Downloadsで作業するの行儀悪いね
Avatar
行儀悪いけどやりがち
10:44 AM
雰囲気的にはtmpなのだ
Avatar
Kishikawa Katsumi 3/6/2018 10:45 AM
あ、会社のMacは難しいかも。ユビレジで人数少ないときは、一人ずつ使ってたけど。
Avatar
omochimetaru 3/6/2018 10:45 AM
ちょっとやるやつは $HOME/temp で作業してる
Avatar
Kishikawa Katsumi 3/6/2018 10:46 AM
DesktopとDocumentsがiCloud同期されるようになってからは私もDownloadsフォルダで作業すること多いです。
Avatar
わかりすぎる
10:46 AM
アレ邪魔…
Avatar
Kishikawa Katsumi 3/6/2018 10:47 AM
だんだんチャンネルの話題から離れてきたけど、私は会社に用意してほしいのはモニタよりタイムマシンだなあ。
Avatar
omochimetaru 3/6/2018 10:47 AM
うちは全員分タイムマシンありますけど、会社だと難しい要因ってなんでしょう?
Avatar
Kishikawa Katsumi 3/6/2018 10:48 AM
や、単に全員ぶんは大変なのかなって思ってるだけです。
10:50 AM
WiFiが詰まるとかあるかな、とか。
10:50 AM
有線接続はあまり嬉しくない。
Avatar
omochimetaru 3/6/2018 10:50 AM
普通にTimeCapsuleを共有するとユーザごとにディスク容量を奪い合っちゃうんですけど、 USBハブでぶら下げた上で個別のディスクをパーティション切っておいて、一人1パーティションにしておくと、容量を均等に分けられる
10:51 AM
帯域の問題はありそうですね
10:51 AM
子機をばらまいていく必要がありそうだ。
Avatar
Wifiの帯域はただでさえカツカツなので、TimeMachineを割くゆとりはなさそう
Avatar
omochimetaru 3/6/2018 10:54 AM
初回世代は有線で取る事もできるよ。
10:54 AM
ま〜Xcodeとかリリースされた時にヤバそうだなあ
Avatar
Kishikawa Katsumi 3/6/2018 10:55 AM
初回はそれでいいけど、常に線があるのはちょっと。
Avatar
USB-Cの先に繋いでもいいのだけど、それやるとブチ太郎が死亡する未来が見えていて
10:55 AM
なんとか安全な感じにしたいけどなかなか
Avatar
Kishikawa Katsumi 3/6/2018 10:56 AM
そういう細かいのの積み重ねで出勤するメリットみたいなことを考えてしまうから、まあ改善できるならしてほしい。
Avatar
Xcodeのシンタックスカラーリング、文字色は指定できるけど文字の背景色は設定できないですよね なんか裏技ないかな
4:08 AM
マジックナンバーは赤背景白文字にしたいとかそういう
Avatar
Kishikawa Katsumi 3/7/2018 6:32 AM
Hackが必要だけどできる気がします。あとで記憶を辿ってみます。
6:37 AM
それも含めてちょいちょい議論されている「〜のパターンを検索したい」というののほとんどはlibSyntaxか-dump-astの情報を使えばできそうと考えてます。いい感じのUIと組み合わせるとけっこうみんな使ってくれそうだなと思うんですけどね。
Avatar
Kishikawa Katsumi 3/12/2018 4:00 AM
@hiragram 思い出そうとしてたの https://gist.github.com/mikeash/baab66481c4964d79eb074e40423dbf9 これなんですけどちょっと目的とは違いました。🙇🏻
Convince Xcode 9 not to smooth its source code font
Avatar
おっ。
4:02 AM
全然なにやってるかわからんw
4:02 AM
Compile the override library
治安が悪そう
Avatar
Kishikawa Katsumi 3/12/2018 4:02 AM
いや、Xcodeのエディタのレイアウトを書き換えるハックがあったなあと思ってそれが^なんですけど、ちょっとやりたいことに対しては大ざっぱすぎて難しいですね。
Avatar
expr void $fptr = (void *)(void ()(void))_T012SourceEditor0aB9LineLayerCACSo18NSAttributedStringC010attributedF0_AA0abC10IdentifierV010referencedC0AA0C13LayoutManager_p04linejK0AA0aB23FontSmoothingAttributesV04fontnO0So12CGColorSpaceCSg018textRenderingColorR0SaySo7CGImageC5image_s5RangeVySiG06columnX0tG6imagestcfc
4:03 AM
なんかわらっちゃった
Avatar
Kishikawa Katsumi 3/12/2018 4:03 AM
記憶が曖昧で、もうちょっとシンプルなソリューションだと思ってました。
Avatar
フォントの背景色指定したいみたいなXcodeの機能要望ってどこに出すのが適切なんでしょうか
Avatar
バグ、ではないんですがいいのかな…w
Avatar
Kishikawa Katsumi 3/12/2018 4:05 AM
^BugReportにDev Toolsっていうのがあるので、そこにEnhancement Requestみたいなのをタイトルに含めて送ればいいと思います。
4:05 AM
BugとSuggestionがあった
4:05 AM
これで送ってみるか
Avatar
omochimetaru 3/23/2018 6:39 AM
ffffffffffff(a: "aaa", b: "aaa\(3)", c: "aaa")
6:40 AM
↑xcodeのAuto Format、引数の文字列に \() 展開があると、次の段がずれる
😢 2
6:40 AM
ffffffffffff(a: "aaa", b: "aaa", c: "aaa")
Avatar
Kishikawa Katsumi 3/23/2018 8:54 AM
たぶん...ff(で始まったインデントが3)で終わってるんでしょうね。(がうまく処理できてない?
Avatar
omochimetaru 3/23/2018 9:01 AM
あ〜、そこがペアになっちゃっているの、ありそうですね。なるほど
Avatar
macOSのbeta 7も公開されたのに、Xcodeがまだbeta 4で止まってる…
Avatar
norio_nomura 3/27/2018 2:49 AM
新デバイスの新機能がAPIなどから露見するのを防ぐために、Xcodeのベータが遅れるのは毎度の事。 (edited)
Avatar
アップルのイベントって今夜でしたっけ?
Avatar
27 March Media Event 12 Hours 07 Minutes 09 Seconds
Avatar
てことは今夜Xcode 9.3出るワンチャンあるか
Avatar
norio_nomura 3/27/2018 2:55 AM
今回はシカゴ開催で0時からか。
2:56 AM
https://www.apple.com/apple-events/ には載ってないけどApple TVのApple Eventsには出てきてる。
Watch the latest Apple keynote stream, and check out the archive of special event announcements for our products and services.
Avatar
おっ ストリーミング配信もあるのかな
Avatar
While Apple often offers a live stream for its special events, the company has confirmed there will be no live stream for the March 27...
3:01 AM
ライブストリーミングではないという話をみました
Avatar
なるほど!
Avatar
Xcode9.3が出るということは、High Sierraにアップデート必須ということになるが…
😁 4
Avatar
https://swiftxcode.github.io/ SwiftPMプロジェクト を iOSアプリから使うテンプレらしい。使ったことある方いらっしゃいますか? (edited)
Use Swift Package Manager directly from within Xcode.
Avatar
Workspace 内に project が複数あるケースで、依存する project に変更があった場合先にそっちをビルドさせるのってできないんでしょうか?今は手動でプルダウンからターゲットを選んでてやや面倒です😑
1:22 PM
(Beginner に書くべきだったかな🙄
Avatar
プロジェクトまたぐとtarget dependenciesってないんだっけ
Avatar
omochimetaru 3/29/2018 1:23 PM
wokrspaceの中の複数のprojectは依存効きますよ (edited)
Avatar
(ここでいいと思いますよ)
1:24 PM
dependencyに入れたらやってくれる…みたいな感じだったっけ
Avatar
omochimetaru 3/29/2018 1:24 PM
target depsは無いけどフレームワークとかembedされてれば検出する
Avatar
あれれ、まじですか😵
1:25 PM
何か設定が足りてないのかしら🙄
Avatar
omochimetaru 3/29/2018 1:25 PM
automatic dependncy detectionみたいな感じのチェックボックスが
1:25 PM
スキームの設定に存在する
1:26 PM
共有してもらえたらみてみますよ
Avatar
了解です、見てみます!
1:30 PM
相変わらずのコレですw https://github.com/taketo1024/SwiftyAlgebra
Contribute to SwiftyAlgebra development by creating an account on GitHub.
Avatar
omochimetaru 3/29/2018 1:37 PM
SwiftyTopologyができてる。
1:39 PM
とりあえず
1:40 PM
SwiftyTopologyが import SwiftyAlgebraしているのに、依存が無いのが変ですね
1:41 PM
a
1:41 PM
ここにこれ設定すればよいかと
1:42 PM
プロジェクトまたいだ依存検出はコレ
Avatar
ありがとうございます!!!
Avatar
Read reviews, compare customer ratings, see screenshots, and learn more about Xcode. Download Xcode for macOS 10.13.2 or later and enjoy it on your Mac.
Avatar
やっぱHigh Sierra必須ですか?
Avatar
ですねー 
互換性:macOS 10.13.2 以降
とのことです
😂 2
Avatar
omochimetaru 3/30/2018 1:31 AM
Filevault解除しよっと・・・
Avatar
Kishikawa Katsumi 3/30/2018 3:28 AM
FileVaultの解除、1TBのSSDで確か1週間ほどかかった
😨 2
😇 1
Avatar
omochimetaru 3/30/2018 3:29 AM
1T SSDで使用量500Gですが、今見たら終わってた、2時間以下だ。
Avatar
Kishikawa Katsumi 3/30/2018 3:29 AM
ええー
Avatar
omochimetaru 3/30/2018 3:29 AM
iMac (Retina 4K, 21.5-inch, 2017)
3:29 AM
最近買ったマシンだから、かな?
3:29 AM
フラグメンテーションの影響などがあるのかも
3:30 AM
TimeMachineも一度発火しておこう。
Avatar
Kishikawa Katsumi 3/30/2018 3:30 AM
私の去年買ったMacBook Proは950GBくらい使ってるかな。
Avatar
RealmがXcode9.3でビルドできないんだが
😟 2
Avatar
Kishikawa Katsumi 3/30/2018 6:16 AM
どんなエラーが出ているんですか?
Avatar
carthageでこける
6:18 AM
そこからはこれからみるところ
6:21 AM
なんか関係ないところで死んでるっぽい (edited)
6:21 AM
なんじゃこれ
6:21 AM
ごめん,realmの問題ではないなこれ
Avatar
ログみたいです〜
Avatar
Kishikawa Katsumi 3/30/2018 6:22 AM
コンソールのログとXcodeのログを出してみなされ?
Avatar
proxyが詰まってる
6:22 AM
PhaseScriptExecution Generate\ RLMPlatform.h /Users/sonson/Library/Caches/org.carthage.CarthageKit/DerivedData/9.3_9E145/realm-cocoa/v3.3.1/Build/Intermediates.noindex/ArchiveIntermediates/Realm/IntermediateBuildFilesPath/Realm.build/Release-iphoneos/Realm.build/Script-5D6156F41BE06FF500A4BD3F.sh sonsons-Mac-Pro:2tch.swift sonson$ tail /var/folders/zj/ltsp_4c918n5x5brxccqfj8h0000gn/T/carthage-xcodebuild.E43Jt9.log the -k (or --insecure) option. HTTPS-proxy has similar options --proxy-cacert and --proxy-insecure. Command /bin/sh failed with exit code 1
6:22 AM
あー,嫌な感じ
Avatar
omochimetaru 3/30/2018 6:22 AM
証明書コケ?
Avatar
オフィスからビルドしてみたから,それが原因臭いなぁ・・・
6:23 AM
昨日までうまいこっと動いてたのに・・・・
6:23 AM
っぽい
6:23 AM
証明書なんぞ,なんもいじってないぞ
Avatar
Kishikawa Katsumi 3/30/2018 6:24 AM
試しにiPhoneのテザリングに繋いでやってみるとか?
6:24 AM
ちょうど月末だし。
Avatar
no-proxyでビルド中
6:26 AM
xcodeのバージョン上げて,gitのバージョンが上がって,https周りの挙動が変わったのかなぁ
6:27 AM
いけてるくさいなぁ・・・
Avatar
あかん,これはproxy周りですわ
6:39 AM
くっそーゴミプロキシめ
Avatar
omochimetaru 3/30/2018 6:39 AM
え、もしかして、
6:39 AM
HTTPS通信を不完全なMITMしている・・・?
Avatar
わからん
6:40 AM
それはないと思う
Avatar
omochimetaru 3/30/2018 6:40 AM
ふむ〜
Avatar
あんのかな・・・・
Avatar
CAがあかんみたいやなぁ・・・・なんじゃこれ
Avatar
carthageの環境変数周りの問題っぽい
7:02 AM
普通にcloneしたら,httpsでcloneできてるから,なんかがおかしくなっている・・・・
7:02 AM
こういうの最悪
Avatar
一時的にsslVerifyをオフにしたら,うまくいくので,なんかSSL関連でトラブってるなぁ・・・・キーチェーンがタコになってるのかしら
7:15 AM
curl: (60) SSL certificate problem: unable to get local issuer certificate curlもこけてるなぁ・・・・.
Avatar
iCloud keychainをオフにしたら動いた
Avatar
結論出ました. iCloud Keychain Sharingが突如,悪さをして,ローカルにもってるCAのリストになんか影響を与えた模様. iCloud Keychain Sharingをオフにしたら,gitもcurlも正しく動作するようになりました.
Avatar
omochimetaru 3/30/2018 7:33 AM
なるほど
Avatar
norio_nomura 4/3/2018 10:33 AM
結局Xcode 9.3にSwiftSyntaxは入らないままだな。
Avatar
Kishikawa Katsumi 4/16/2018 3:13 PM
Xcode 9.3, observe(_:options:changeHandler:)-[NSObject addObserver:forKeyPath:options:context:] を使ってたらInstrumentsのLeaksがクラッシュする 👿
3:14 PM
要するに今どきのほとんどのアプリではInstrumentsでメモリリークを調査できない。
😯 3
😱 2
2:47 AM
このプロジェクトをXcode 9.3または9.4betaで開いてInstrumentsのLeaksでモニターするとアプリがクラッシュする。
2:51 AM
私は普段ツールチェーンはできるだけ早く最新にしようと主張しているのだけど、Xcode 9.3は他にも(正確にははっきりしてないけど)不具合のような挙動が観測されるので、WWDC終わるまでは9.2を使った方がいいかなという感想。
Avatar
omochimetaru 4/17/2018 2:52 AM
最近のApple製品、だいたいなんでもそういうトラップありませんか もう全然最新即インストールはしていない
Avatar
Apple、決め打ちした一つのプロジェクトに全振りして他が疎かになるイメージある
Avatar
Kishikawa Katsumi 4/17/2018 2:55 AM
ありますな。
Avatar
ほんとだ、うちのアプリもLeaksで落ちました
3:01 AM
Allocationsだと落ちなくて、Leaksとの組み合わせなんですね
Avatar
Kishikawa Katsumi 4/17/2018 3:12 AM
そうなんですよ。
Avatar
Xcode9.3のgitのマージツール、解決してもPullボタンアクティブにならないんですが、他に同じ症状持ってる人いますか?(そもそも使わない説)
Avatar
使ってないな
Avatar
デスヨネー
Avatar
Xcode9.3でIBOutlet貼れないのですがw 同じ症状の人いますか?👀
Avatar
Storyboardからもswiftファイルからもです?
Avatar
storyboard to swiftファイルです コード先書くぶんには繋げました(面倒)
Avatar
さいきんのXcode、xib側からIBOutlet/IBActionに接続しても繋がらなくない? swift側から伸ばさなきゃいけないけどそうすると、UIButtonのAction全部TouchUpInsideになってしまうんや
5:03 PM
にわタコさんも同じこと言ってたから何かありそうだけど、まだ遭遇してないですね…
Avatar
おー、にわたこさんも…同じ人がいたかぁ
Avatar
割とこれなるけど、気がついたら治ってる
5:14 PM
頻繁にDerivedData消してるからかな
Avatar
👀試してみます
Avatar
貼れない時ってどんな状態なんです?
5:16 PM
ポップアップで変数名入れてEnter押しても確定できないやつ?? (edited)
Avatar
エラー出るやつと、そもそもポップアップでないの二種類あると思う
Avatar
説明不足でした🙏エラーの方です
Avatar
Kishikawa Katsumi 5/10/2018 5:18 PM
ポップアップが確定できないのはあった気がします。思い出した。 @IBOutlet/Actionは書いて、StoryBoardのCtrl+クリックで繋ぐのは問題ないんじゃないかな?
Avatar
それは問題ないです
Avatar
赤いラベル出てフィールド定義できないやつですよね。こっちは既存のものにつなぐのも問題ないはず
👍 1
Avatar
明日にでもDerivedData消しやってみます。解決したら報告します💪
Avatar
Kishikawa Katsumi 5/11/2018 2:10 AM
WWDCまで出ないと思ってた9.3.1が出たようです。What's newを読む限り直ってる気はしませんが、試す価値はありそうです。
Avatar
試してみます💪
Avatar
RxSwiftのクラッシュ治ったかしら
Avatar
norio_nomura 5/11/2018 2:37 AM
Swiftのバージョンは変わってないよ>9.3.1
Avatar
過去にswiftのバージョン変わってないけどバグが修正されていた事例が、、
Avatar
ソースコードに /// - Tag: Hogehoge を置いてMarkdownファイルから [hoge](x-source-tag://Hogehoge) してもコードに飛んでくれないんですがこれ使ってる人いますか
7:11 AM
当方Xcode9.2
7:11 AM
Avatar
struct定義の手前に置いたTagには飛べるけどファイルの途中に置いたextensionへのTagは飛べない みたいなことがわかった。困った。
Avatar
それをインデックスしているのが https://github.com/apple/swift/blob/6d7fe7fb/lib/Index/Index.cpp#L1175 で、これのコールサイトを調べると https://github.com/apple/swift/blob/6d7fe7fb/lib/Index/Index.cpp#L639 ここだけで、これは ValueDecl にしか呼ばれず、 ExtensionDeclValueDeclじゃないので extension についた - Tag: はインデックスされないという問題っぽい。
swift - The Swift Programming Language
swift - The Swift Programming Language
Avatar
IBOutlet繋げられない件、DerivedData消しで解消しました🥂🤦‍♂️
🙌 3
Avatar
omochimetaru 5/15/2018 8:52 AM
FIXMEって絆創膏になるんだ。 (edited)
😮 2
Avatar
omochimetaru 5/23/2018 5:10 AM
@ありぜ
いや、自分はgithubからalamofireのproject取って来て、そこにPlaygroundぶち込んでimportしましたw
これやってみようとしたけどどうにもわからん
Avatar
Kishikawa Katsumi 5/23/2018 5:15 AM
同じワークスペースにあるプロジェクトはPlaygroundでインポートできます。
5:15 AM
ビルドされていればimportを書いたら動くと思います
5:16 AM
普通のアプリの感覚で一緒にビルドされないので、それでうまくいかないケースがよくあります。
5:16 AM
それ以外だとうまくいかないワークスペースをアップロードしてもらって調査ですね。
Avatar
omochimetaru 5/23/2018 5:18 AM
あ〜、わかりました。なるほど。 Generic iOS Device でビルドしてたけど、シミュレーターが正解でした。
5:19 AM
ありがとうございます。手動ビルドが必要というので気が付きました。
Avatar
Kishikawa Katsumi 5/23/2018 5:23 AM
さすがですね。
Avatar
飯行ってる間に解決してた😃
Generic iOS Device でビルドしてたけど、シミュレーターが正解でした。
(edited)
5:47 AM
これ地味にひっかかりますよね
Avatar
/Library/Developer/CommandLineTools/usr/bin/ /usr/bin/swift 自分のMacにSwift2種類入っているんですけどXcodeでインストールされる方ってどっちかわかる方いますか…?
10:40 AM
この環境だと /Library/Developer/CommandLineTools/usr/bin/swift --version Apple Swift version 4.1 (swiftlang-902.0.48 clang-902.0.37.1) Target: x86_64-apple-darwin17.5.0 /usr/bin/swift --version Apple Swift version 4.1.2 (swiftlang-902.0.54 clang-902.0.39.2) Target: x86_64-apple-darwin17.5.0 となっていて、後者がxcodeからのインストールなような気がしているのですが
10:42 AM
https://github.com/bitrise-io/bitrise.io/blob/master/system_reports/osx-xcode-9.4.x.log Bitriseの実行環境だとXcode9.4.xだと前者を使うようになっており、bitriseが悪いのか自分の環境がおかしいのか分からず…
bitrise.io - Bitrise.io public issues
Avatar
手元のiMac 2017だと これはない /Library/Developer/CommandLineTools/usr/bin/ これはある /usr/bin/swift
10:47 AM
Xcodeが使ってるswiftは [omochi@omochi-iMac-PC43 ~]$ xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
10:47 AM
↑これでわかります
Avatar
ありがとうございます、 xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift 自分のはココ参照してました、3つswift入っているのか…
10:50 AM
問題としてはbitriseのxcode9.4環境でcarthageビルドがswift4.1で行われているみたいで、これを見る限り ビルドのときは4.1.2参照してcarthageは4.1参照している感じかもですね… (edited)
Avatar
/usr/bin/swiftxcrun -find swiftで見つけられるswiftのラッパーです。 (edited)
11:26 AM
xcode-selectでデフォルトを選択したり、DEVELOPER_DIR, TOOLCHAINS環境変数によってどこのswiftを使うかが決まります。
Avatar
なるほど、/usr/bin/swiftは実際には/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftを参照しているということなんですね
11:29 AM
本当だ、/usr/bin/swiftは18KBなんですね
Avatar
$ xcode-select -p /Applications/Xcode.app/Contents/Developer $ xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift $ DEVELOPER_DIR=/Library/Developer/CommandLineTools xcrun -find swift /Library/Developer/CommandLineTools/usr/bin/swift $ TOOLCHAINS=org.swift.40320171205 xcrun -find swift /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift
11:31 AM
あれ?TOOLCHAINS環境変数って使えなくなった?
11:34 AM
あいや、使えた。 $ TOOLCHAINS=org.swift.4020170919 xcrun -find swift /Library/Developer/Toolchains/swift-4.0-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.40220171101a xcrun -find swift /Library/Developer/Toolchains/swift-4.0.2-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.40320171205a xcrun -find swift /Library/Developer/Toolchains/swift-4.0.3-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.4120180329a xcrun -find swift /Library/Developer/Toolchains/swift-4.1-RELEASE.xctoolchain/usr/bin/swift $ TOOLCHAINS=org.swift.41120180502a xcrun -find swift /Library/Developer/Toolchains/swift-4.1.1-RELEASE.xctoolchain/usr/bin/swift
11:36 AM
TOOLCHAINS=org.swift.40320171205a ではなく TOOLCHAINS=org.swift.40320171205 って書いてた。
Avatar
あ、すいませんこれそもそもローカルのxcodeとbitriseのxcodeのバージョンが違うっぽいです bitriseのビルド自体はちゃんとxcodeのswift-version使っているみたいです
11:37 AM
bitrise: 9Q1019a ローカル: 9F1027a
11:39 AM
bitirseのxcodeがまだXcode 9.4 beta 2だからcarthageでバイナリのチェック弾かれていたということみたいです…w お騒がせしましたー 💦
Avatar
バイナリをコミットしてるんですか?
Avatar
ですです、binaryにしてます
Avatar
最近/Library/Developer/CommandLineToolsのアップデートがMac App Storeへ来ないよね。昨日確認したらSwift 4.1のままだった。
Avatar
そのディレクトリ、binすらなかったです
11:44 AM
usr/shareだけあった
Avatar
xcode-select --installでインストールされます。
11:45 AM
/Library/Developer/CommandLineToolsが無いとHomebrewが文句を言うので、インストールした記憶。
Avatar
ふむ、明日見てみよう
11:46 AM
バイナリはだいたいは楽だけどたまにハマりますね
11:46 AM
僕は絶対ソースビルドマンになった
Avatar
最近/Library/Developer/CommandLineToolsのアップデートがMac App Storeへ来ないよね。昨日確認したらSwift 4.1のままだった。
12:52 PM
12:52 PM
これですかね…?
Avatar
norio_nomura 5/31/2018 1:32 PM
お、そうですね。
Avatar
omochimetaru 5/31/2018 2:38 PM
xcodeのschemeで、Run > Info のところで、Launch を Wait for executable to be launched にすることで、 swiftコマンドが起動する瞬間にデバッガをアタッチできるんですが
2:38 PM
swiftcコマンドに対して同じことをやろうとしても、Executableを指定するところで、 swiftcは実際にはシンボリックリンクなので、
2:39 PM
XcodeのExecutableを選択するダイアログが勝手に、リンク先のswiftの指定として解釈するっぽくて
2:39 PM
選択後にExecutableがswiftになってしまう。
2:39 PM
で、その状態だと、swiftcコマンドが叩かれてもデバッガアタッチされない
2:41 PM
あ、ちがう、かんちがいだ
2:42 PM
swiftcからの起動であってもswiftでwaitしておけばアタッチできた。
2:43 PM
自己解決しました・・
2:43 PM
いつのまにか /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc が混ざってて、自前版とごちゃごちゃになってた。
2:49 PM
swift-buildがswiftcを呼び出すところはSwiftのFoundationのProcess.popenで、
2:50 PM
この呼出にはデバッガがアタッチしないっぽい
2:50 PM
けどなんか起動したこと?は
2:50 PM
検出するみたいで、Xcodeはwaitからfinishに変わる。
2:52 PM
swift build からの一連の動作をデバッグしようとしてるんだけど難しいですね 今の所swiftのmain冒頭にargvのダンプを仕込んで、swiftpm経由で発火するときにstdoutに出させて、 呼び出しを洗い出したあと、手動で実行し直したりしています・・
Avatar
Xcode9.4のInstruments TimeProfiler、iOS11.3のiPhone7plusで自分のプロジェクトだと無限にinitializingし続ける https://stackoverflow.com/questions/49744280/time-profiler-in-instruments-not-working の現象だったけどiOS11.4にアップデートしたらちゃんと吐くようになった。
I recently update my Xcode to version 9.3, so is instruments. After that, time profiler won't work anymore, it usually works fine before. I tried to run it via Xcode, and I tried to run it manually.
6:48 AM
(再起動が効いたのかアップデートが効いたのかは分からないけど)
Avatar
Build ConfigurationでDEBUGの時だけリソースをバンドルする設定とかってありましたっけ…? Build Phaseで条件分岐してcpするしかないですかね
Avatar
omochimetaru 6/8/2018 4:21 AM
心当たりは無いです
Avatar
逆ですがこういう感じです? https://qiita.com/lovee/items/2a271fc8c1dd9ab577f8
あまり需要がなさそうですが、ゲームとかの場合ですと大量の素材データをアプリ内に封入したりすることがあるじゃないかと思います。そしてそれらの素材を全部 Xcode に登録すると、デバッグ時でも転...
Avatar
omochimetaru 6/8/2018 4:24 AM
Build Phaseで条件分岐してcpするしかないですかね
ちょうどこれのことかな?
Avatar
リソースを Release ビルドの時だけアプリに封入させる
これですね、やっぱりcpでやるしかないか
Avatar
多分やっぱりcpでやるしかなさそうな気が 🤔
♥ 1
Avatar
omochimetaru 6/8/2018 4:25 AM
リソースの配置ってPNGだったら色変換されたり
4:25 AM
Xcode側が手を出す場合があるのと、 xcassetsとかもあるから
4:25 AM
自分でcpでやると何かしら想定外の事態が生じるかも。
❤ 2
Avatar
🙇 ありがとうございます、cpします 現状ではサンプルのjsonを配置したかったので一旦cpで事足りそうです
🎉 1
Avatar
daisukeokaoss 6/13/2018 3:07 PM
すいません、質問なんですが、 AVCaptureSessionPreset1920x1080 を使おうとした時、use of Unresolved Identifierとかいうエラーが出るんですがどうすればいいでしょうか? よろしくお願いします (edited)
Avatar
端末がサポートしていない解像度かもしれないですね (edited)
4:29 PM
captureSession.canSetSessionPreset(AVCaptureSessionPreset1920x1080) (edited)
4:29 PM
とかでサポートしているか確認できるのですがいかがでしょうか (edited)
Avatar
use of Unresolved Identifierなので、コンパイルエラーぽい
4:31 PM
綴りの間違いか、コンパイラーが参照を解決できてないみたいなので、Xcode再起動とかclean からbuildしなおしではダメですかね??
Avatar
ObjCで書いているのであればAVCaptureSessionPreset1920x1080 で問題ないはずですが (edited)
4:33 PM
Swiftで書いているのであれば AVCaptureSession.Preset.hd1920x1080 のようなネームスペースの切り方する必要があります。 あとimport AVFoundation忘れているかも
Avatar
↑noppeさんのやつな気がする (edited)
Avatar
daisukeokaoss 6/13/2018 8:50 PM
なるほど!!noppeさんありがとうございます!!
Avatar
Xcode9でOpenGLESのinstruments無くなっているような気がしてきた・・・
Avatar
omochimetaru 6/20/2018 7:54 AM
それはまじこまる
Avatar
Blankで作ってから右上の+押して追加できる項目のなかにありません?
8:10 AM
Blankで作ってから右上の+押して追加できる項目のなかにありません?
あるんですけどunsupportedになっていて赤丸のボタンが押せないです… 使えないのか使い方間違えているのかどっちだろう・・・
Avatar
自分のほうはXcode9.2で実行までいけたものの、アプリ操作してたらInstrumentsがクラッシュした…w
Avatar
自分のは9.4すね 右の赤丸!クリックするとRecording no longer supported by this instrumentsと出てくるので使えそうな感じするんだけどなぁ
8:14 AM
今しょうがなくXcode8ダウンロード中。Xcode8当時よりも新しいiOSでもちゃんと動いてくれるかなぁ…
Avatar
Xcode 9.4でInstrument開いたら、同様に Recording no longer supported by this instruments 出てあかんですね
Avatar
むむ、じゃあなんか9.4でもうObsolutedな感じなんですかね Xcode10でobsoluteするなら分かるんだけど(わかんないけど)9.4でやるのは強引な気がしてしまう (edited)
Avatar
ですねー…
Avatar
8.3.3入れてみたけどそういえばAVLayerGravityとかその辺が軒並みコンパイルエラーになったので試そうと思った心が折れてしまった・・・
4:30 AM
あっあっ別にinstruments使うだけならビルドの必要なかった。 8.3.3でiOS11.4のOpenGLESのinstruments動いてる。
😮 1
Avatar
norio_nomura 7/1/2018 11:30 PM
TIL: “xed .” will open the Xcode workspace or project file in the current directory. So many hours wasted typing “open projectname.xcworkspace” 🤦‍♂️ #swiftlang
Likes
270
😲 13
3:00 AM
自分の環境では動かなかったけどコードが悪いかも知れない
Avatar
Refactor > Rename 、もしかして、 Enter で決定するとファイル名が変更されないけど、右上の Rename ボタンを押すときちんとファイル名も変更される?
Avatar
雑ですけど、Xcodeの代わりにAppCodeをメインのIDEとして使う人がいますか?
Avatar
omochimetaru 7/27/2018 3:30 AM
@Kuniwak さん?が、よく、AppCodeの話してるので、使ってそうです (edited)
Avatar
外部ライブラリーでのコード補完たまに効かないのは通常かな😢
Avatar
AppCode 使ってます
5:27 AM
コード補完きかなかったことは記憶にないですね
5:29 AM
Flutter とかでかいやつだと死ぬ的な issue 上がってますね(issue tracker が見えるのは AppCode の優れている点の一つです
Avatar
@cookiezby 補完が効かないというのは、import した framework 内部のクラスとか関数とかの補完が効かないということであってます?
Avatar
@Kuniwak そうかもしれません、手動で補完した後動くことはできます
Avatar
これ系のあったときは、youtrack (上の URL)で調べてみると同様の事象があるかもなので、探してみるといいと思います。
Avatar
let test = SignalProducer<Int, NoError> { (observer, lifetime) in observer.send(value: 5) observer.sendCompleted() } (edited)
5:53 AM
中身observe.からの補完は効かいです。
Avatar
んー、これ外部ライブラリというより、型推論の問題かもですねぇ
5:54 AM
真相はよく知らないんですが、AppCode って Xcode (SourceKit)の型推論でできないやつも推論してきたりするので、どうやら独自の推論器を使っている節があります (edited)
5:55 AM
observer に型アノテーションをつけたらどうなりますか?それとも変数名の補完が効いていないということでしょうか
Avatar
let test = SignalProducer<Int, NoError> { (observer: Signal<Int, NoError>.Observer, lifetime) in observer.send(value: 5) observer.sendCompleted() }
5:57 AM
これちゃんとでますね
5:58 AM
独自の型推論か、ありがとうございます @Kuniwak
Avatar
なるほど、推論器系のは確かにちょいちょい見かける気はします
Avatar
Macの画面を分割して片側にiOSシミュレータを常時表示しておくみたいなやりかた、Twitterのタイムラインで見かけた事がある記憶なんですけど誰かぱっとリンク出てきたりしませんか
6:59 AM
確か @d_date が紹介していたような…
Avatar
Kishikawa Katsumi 8/6/2018 7:01 AM
iOS アプリケーションを開発しているとシミュレータでデバックすることが多くあります。 しかし、通常では画面が大きくない場合、開発しているエディタとシミュレータをスイッチする必要があります。 ...
Avatar
これ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Avatar
Kishikawa Katsumi 8/6/2018 7:03 AM
https://medium.com/developerinsider/best-ios-development-tips-and-tricks-6c42c1d208c1 ^ こういった話が前に話題になって、Highシエラからは/AppleInternalがsudoつけても作れなくなっていったんSIPをOFFにする必要があるっていう記事ですね。
This article was first published on DeveloperInsider. You can take a look at it here.
Avatar
omochimetaru 8/6/2018 7:04 AM
@hiragram ウィンドウ並べるのとどう違うの?
Avatar
これから試すからわかんないけど、Xcodeをフルスクリーンモードにしてもシミュレータは隠れないんじゃん
Avatar
omochimetaru 8/6/2018 7:05 AM
Xcodeをフルスクリーンモードにしないで、ウィンドウをビーッと引っ張ってちょうどよい大きさにしたらよくない?
Avatar
それはXcode以外にもシミュレータを隠してほしくないすべてのアプリでやる必要があって手間
Avatar
omochimetaru 8/6/2018 7:06 AM
あー
7:06 AM
他のアプリで隠れるとシミュレーターを手前に持ってくるのにもう一手必要なのか。
Avatar
yes
7:07 AM
社macで初めてやるのはアレなので帰ったら家macでためす
Avatar
Kishikawa Katsumi 8/6/2018 7:12 AM
シミュレータからStay In Frontがなくなったというのも影響あるのではないかな。
👀 1
Avatar
Kishikawa Katsumi 8/6/2018 7:30 AM
私が共有した2番目の記事に載ってるけど、 @hiragram さんのやりたいことだったら/AppleInternal作らなくても defaults write com.apple.iphonesimulator AllowFullscreenMode -bool YES これでいけるのでは。。。?
👀 4
7:32 AM
ちなみに、私はInternalメニューは面倒で有効にしてないけどそこにあるShow Single Touchesとかは個別に defaults write com.apple.iphonesimulator ShowSingleTouches 1 有効にしているので、セーフブートから起動とかするよりその方がいいんじゃないかな。
Avatar
omochimetaru 9/18/2018 6:47 AM
ベータの時にあった微妙にブレークポイントがクリックしづらいバグ?が治ってる。
🎉 1
Avatar
花芽尋かすみ 9/23/2018 6:31 PM
なんなら9.4.1でも発生してました( ˘ω˘ )
Avatar
norio_nomura 9/27/2018 2:40 AM
型のアクセスレベルをQuick Helpに表示するか、シンタックスハイライトの色をアクセスレベルで変えられるかしてほしいな…
Avatar
Kishikawa Katsumi 9/28/2018 3:37 AM
XcodeのNew Build SystemでSWIFT_ACTIVE_COMPILATION_CONDITIONSが間違って設定される問題がある。(.xcconfigを使ってることが原因?) https://openradar.appspot.com/radar?id=5022468192337920
Avatar
norio_nomura 9/28/2018 3:45 AM
2. Select "Staging" schema
Staging schemeがリポジトリに入ってないみたい。 https://github.com/kishikawakatsumi/Xcode10-NewBuildSystem-SWIFT_ACTIVE_COMPILATION_CONDITIONS-Bug/tree/master/App.xcodeproj/xcshareddata/xcschemes
(edited)
Xcode 10's new build system sets a wrong SWIFT_ACTIVE_COMPILATION_CONDITIONS flag if using xcconfig file. - kishikawakatsumi/Xcode10-NewBuildSystem-SWIFT_ACTIVE_COMPILATION_CONDITIONS-Bug
Avatar
InterfaceBuilderからctrlドラッグでVCにOutlet/Action新規作成するとき場所によってOutletかActionか自動で判定されるようになってるみたいですね。 @IBOutlet var onPress~みたいなのをしょっちゅう間違って作ってたので便利。
Avatar
おぉ!
3:53 AM
それ地味に嬉しい
Avatar
Kishikawa Katsumi 9/28/2018 4:16 AM
@norio_nomura あら、お昼から戻ったら直します。
Avatar
Kishikawa Katsumi 9/28/2018 5:08 AM
@norio_nomura 直しました。どうもありがとうございます。
🙂 1
Avatar
norio_nomura 9/28/2018 5:19 AM
これはXcode 10のKnown Issueでは?
5:20 AM
  • When build settings are defined in an xcconfig file that inherit values using $(inherited) or $(<setting_name>), the Build Settings editor shows the last assigned value for the setting instead of the properly composed value. (28572636)
5:21 AM
生成されたマニフェストを読むと、ビルド時に"-DRELEASE","-DSTAGING"どちらも渡されてる。
Avatar
Kishikawa Katsumi 9/28/2018 5:22 AM
Known Issueかー
Avatar
norio_nomura 9/28/2018 5:22 AM
.xcconfig内での$(inherited)の扱いがXcode 10で変わったことも、リリースノートに載ってる。
Avatar
Kishikawa Katsumi 9/28/2018 5:23 AM
When an .xcconfig file contains multiple assignments of the same build setting, later assignments using using $(inherited) or $(<setting_name>) will inherit from earlier assignments in the .xcconfig. The legacy build system caused every use of $(inherited) or $(<setting_name>) skip any other values defined within the .xcconfig. To detect whether your .xcconfig is affected by this improvement, run defaults write com.apple.dt.XCBuild EnableCompatibilityWarningsForXCBuildTransition -bool YES in Terminal to cause Xcode to generate a warning about this situation. (40283621)
Avatar
norio_nomura 9/28/2018 5:23 AM
かぶったw (edited)
Avatar
Kishikawa Katsumi 9/28/2018 5:24 AM
👍
5:24 AM
これKnown Issueかな。
5:25 AM
この設定で両方渡されるのはおかしい気がします。
Avatar
norio_nomura 9/28/2018 5:25 AM
実際には引き継がれて2つ渡されるけど、XcodeのBuild Settings UIではそれが反映されていない。
Avatar
Kishikawa Katsumi 9/28/2018 5:26 AM
xcconfigの階層関係やincludeは若干複雑だけど、フラグは別のビルド設定に書いているわけで。
5:27 AM
$(inherited) or $(<setting_name>) < この条件に当てはまらないと思いません?
Avatar
norio_nomura 9/28/2018 5:27 AM
Project-Staging.xcconfig: #include "Project-Release.xcconfig" SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) STAGING Project-Release.xcconfig: #include "Project-Production.xcconfig" SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) RELEASE
5:29 AM
リリースノートの記述を解釈すると、 SWIFT_ACTIVE_COMPILATION_CONDITIONS = RELEASE STAGING になるのでは。 (edited)
Avatar
Kishikawa Katsumi 9/28/2018 5:30 AM
あ、私のミスな気がしてきた。
5:31 AM
Project-Staging.xcconfigが#include "Project-Release.xcconfig"してるのは完全に間違い
Avatar
norio_nomura 9/28/2018 5:31 AM
なるほど。
Avatar
Kishikawa Katsumi 9/28/2018 5:32 AM
そこはは #include "Project-Production.xcconfig" であるべきで、
5:33 AM
うん、これはxcconfigの記述ミス。元のプロジェクトからずっとおかしかった。
5:33 AM
おさわがせしました 🙇
👍 1
Avatar
norio_nomura 9/28/2018 5:34 AM
Xcode 9なら問題なかったかと。
Avatar
Kishikawa Katsumi 9/28/2018 5:36 AM
そうですね。結局includeしている共通部分以外は全部上書きされるので、結果的に一緒になっていたからいいんですけど、New Build Systemで問題が顕在化したと。
5:36 AM
わかってよかった 😅
Avatar
メソッドが返した値をデバッグするときって皆さんどうされてますか? return hoge.size を毎回 let size = hoge << break point return size しているんですけど、良い方法あるのかなと
Avatar
メソッド直接叩いちゃダメですか
4:25 AM
あー、対象のオブジェクトへの参照が手に入りづらい状況 or メソッドの実行で副作用が発生するのが厳しい的な感じです?
Avatar
確かに直接叩くの良さそうですね! ケースとしてはUICollectionViewLayoutDelegateでsizeを返す箇所なので、直接叩くでいけそうです
👍 1
4:34 AM
ありがとうございます!
Avatar
似た話だと思いますけどthrowされたエラーをキャッチせずに見る方法ないですかね
Avatar
Kishikawa Katsumi 10/2/2018 5:26 AM
エラーブレイクポイントっていう機能があるんでそれ使えないですか?
5:27 AM
Swift Error BreakpointっていうのをXcodeで設定したらswift_willthrowにブレークポイントがつきます。
Avatar
それ以外にも色々な breakpoint はる方法あるのでそれでも良さそう
Avatar
Kishikawa Katsumi 10/2/2018 5:28 AM
Error変数の中身を見たいっていうのはデバッガからはかえって難しいかも。
Avatar
エラーブレイクポイントだとピンポイントで見れないのがちょっとですね。
5:29 AM
-b <function-name> ( --basename <function-name> ) Set the breakpoint by function basename (C++ namespaces and arguments will be ignored). Can be repeated multiple times to make one breakpoint for multiple symbols.
5:29 AM
これとか使えるかもですね
5:29 AM
確か Swift でも動いた記憶が
Avatar
step out 時の return value キャプチャ は Swift で動かないっぽいんですが、なぜか throw はキャプチャできました。 throws な func の適当なところにブレークポイントはって、ブレークした状態で、 Step out で進めると func 抜けたところで止まります。んで、thread info コマンドを実行すると Return value: (CommandLineSandbox.MyError) $E0 = fooError みたいな行が表示されているので、po $E0 とかで中身が見られます。
Avatar
omochimetaru 10/2/2018 5:39 AM
おお
Avatar
omochimetaru 10/2/2018 5:41 AM
CommandLineSandboxいいですね、僕も作ろうかな
Avatar
Playgroundが調子悪くなっちゃったので私も前にSandbox作りましたw
Avatar
@rintaro 簡単そうでいいですね。ありがとうございます。
5:45 AM
(lldbは個人的に手出しにくくて敬遠してるんですが皆さん活用してるんですかね)
Avatar
omochimetaru 10/2/2018 5:46 AM
@t.ae 同僚として言うけど活用しましょう
😂 1
6:02 AM
動画化しました
Avatar
デバッグの動画、いい資産になるのではということが最近社で話題になった
Avatar
omochimetaru 10/2/2018 7:24 AM
ほう?
Avatar
デバッグ術って結構共有されにくいナレッジで、ここに色々詰まってるのでは?みたいな話
Avatar
omochimetaru 10/2/2018 7:30 AM
たしかにコードレビューとかでは出てこないなあ
Avatar
Kishikawa Katsumi 10/2/2018 7:39 AM
そっすね。共有しにくいからチーム内ではそこそこ共有するけど、それ以上は難しいね。
Avatar
個人的にはペアプロをいっぱいするのがいい気がしています。デバッグ方法だけじゃなくて、様々な開発ツールのハックとか、テストのリズムとかが伝わるんですよね
Avatar
ペアプロたくさんやるのはいいですね
Avatar
omochimetaru 10/3/2018 1:57 AM
スタックトレースでallocating initとかprotocol witness conformanceとかの、
1:58 AM
裏で作られてるメソッドが表示されるのって
1:58 AM
前からでしたっけ?
1:58 AM
とてもわかりやすい。
Avatar
norio_nomura 10/4/2018 2:07 AM
MojaveでXcode 9.4.1のGUIからxctestを起動できないのですが、openradarでしか同様の事例が見つかりません。 https://openradar.appspot.com/44945549
2:07 AM
「こちらでは使えている」という方いますか?
Avatar
Xcode10.0でimage.xcassetsのhoge.gifがvalid extensionでwarningが出ていて、simulatorでhoge.gifを表示するとクラッシュします。 gifを端末の解像度で出し分けたい時にどうするのがよいですか?
Avatar
xcassetsに入れずにBundle.main.url(for:extension)とかで取ってくる方法でいいと思います
9:15 AM
あとxcassetsもUIImageViewもgif対応してないので、そもそもgifではなく連番pngでxcassetsで管理してだ仕分けする方がiOSだとスタンダードだと思います。
🙇 1
Avatar
ありがとうございます。その方向でチーム説得しようと思います。
Avatar
Xcode10にしてからシミュレータが重い...
Avatar
タッチのフィードバックが遅い感じ?
8:56 AM
前トラックパッドでシミュレーターを操作する際に、反応がけっこ遅くなって、マウスに切り替えた後その問題を解消した。謎です😇
9:52 AM
スクロールがもたつく感じです
9:52 AM
もしかしたらTextureのせいかもしれない
9:54 AM
あっ、普通のUITableViewのところは問題ありませんでした。完全にTextureの問題っぽい
Avatar
花芽尋かすみ 10/23/2018 2:25 PM
(おっ、Twitterクライアントだ!👀
Avatar
twitterは死んだ…!
Avatar
岸川さんのAutoLayoutのやつはシミュレータで重かった。UIKitでも起こるっぽい Cookiezbyさんのマウスにすると直るみたいなのも試してみたいけどマウスが周りにない、、 (edited)
Avatar
我的API始終返回[{},{},{}]一個Json數組,如何使用swift 4.2解碼它,如果有人已經有這種情況我正在聽。我的方法點擊了GET請求。 Wǒ de API shǐzhōng fǎnhuí [{},{},{}] yīgè Json shùzǔ, rúhé shǐyòng swift 4.2 Jiěmǎ tā, rúguǒ yǒurén yǐjīng yǒu zhè zhǒng qíngkuàng wǒ zhèngzài tīng. Wǒ de fāngfǎ diǎnjīle GET qǐngqiú.
Avatar
初めてコードサインを行っているのですが、完全に行き詰ってしまったので知恵を貸してください 0, macOS Mojave, Xcode 10, ターゲットは macOS 1, Frameworkを作成中 (pure Swift) 2, Framework内にEmbedded Frameworkがある 3, Framework自体にはコードサインを施していない 4, このFrameworkをテストのためのCocoaアプリケーションを用意している 5, このアプリケーションはコードサインを施す前は正しく動いていた 6, 有料会員ではないので利用する証明書は1週間限定のもの の前提で 0, FrameworkにKeychainを利用する機能を追加しようとしている 1, テスト用のCocoaアプリケーションにコードサインを施そうとしている 2, Other Code Signing Flagsに --deepを設定 3, buildは通るようした のですが、これを起動すると dyld: Library not loaded: @rpath/libswiftAppKit.dylib Referenced from: /Path/To/Demo.app/Contents/MacOS/Demo Reason: no suitable image found. Did find: /Path/To//Demo.app/Contents/MacOS/../Frameworks/libswiftAppKit.dylib: code signature invalid for '/Path/To/Demo.app/Contents/MacOS/../Frameworks/libswiftAppKit.dylib' というエラーが発生します。 ビルドログにはlibswiftCoreをはじめSwiftのstandard libraryはコピー時にcode signが行われています。 DerivedDataの削除はビルドのたびに行ってます keychainから1週間限定証明書の削除も何度も試しています WWDR証明書の再インストールもやってます Xcodeのアカウントを一度削除して再び追加も試しています XcodeおよびOSの再起動も何度も試しています ここが悪そうとか、これは試してみた?など何かありませんか?
Avatar
Kishikawa Katsumi 10/25/2018 12:05 PM
@masakihori まず2のFrameworkの中にFrameworkという状態だとAppStoreの配布ができませんがそれは問題ないですか?もし作成しようとしているフレームワークをAppStoreで公開するアプリに使用、もしくはそれを前提とした誰かに使ってもらうために公開する場合、コードサインの問題を解決しても次はそこが問題になります。
Avatar
完全に趣味の自分用なので問題ないです
12:14 PM
AppStoreってそういう制限もあるんですね
12:15 PM
一度Framework in Frameworkをやめて試してみます
12:20 PM
Framework in Framework がダメだったようです
😄 1
12:22 PM
解決の糸口ありがとうございます
12:22 PM
完全にあきらめるところでした
12:27 PM
新たに疑問が出来たんですけど、Frameworkを作るに当たって他のFrameworkを必要とする場合ってどのようにしてますか?
Avatar
Kishikawa Katsumi 10/25/2018 12:44 PM
基本的に依存関係を解決するのは使う側の人間の責任ですね。なので依存関係が明らかになっていればやり方は自由ですが、
12:45 PM
https://robots.thoughtbot.com/creating-your-first-ios-framework Carthageを使ってサブモジュール扱いにして、依存先をベンダリングしてしまって、楽したい人はCarthageコマンドで半自動で解決できる、っていうのがオススメですかね。 (edited)
Learn to build your own iOS framework that’s compatible with Carthage, CocoaPods and git submodules.
Avatar
英語があまり読めないんですけど、依存関係の明記とCartfileの用意だけしてあとは利用側にゆだねる、でいいのかな?
Avatar
@Kishikawa Katsumi 関係ないですが、KeychainAccess 使わせていただきました。便利ですね!
Avatar
フレームワークにフレームワークを含めるなというAppleのガイドラインがありました
🎓 1
Avatar
Kishikawa Katsumi 10/26/2018 5:40 AM
^ この記述は知らなかったです。
Avatar
Hi how make Table View swipe with swift4 ? I have try but it didn't work
Avatar
@JohnLight It's talk about UIKit. Please post at #uikit.
4:17 AM
If you don't know where post to channel, please ask in #zatsu channel. (maybe same post to multiple channel are not good for receive good answer.
Avatar
omochimetaru 11/6/2018 1:51 AM
XIBでビューをドラッグするときに、他のビューの子供になっちゃう挙動、Command押しる間は無効になるんですね
😲 10
👀 2
1:55 AM
Xcode10.1で、xcassetで設定したSlicingが、XIB上で正しくプレビューされないんですが
1:55 AM
何か知ってる人います?
Avatar
子ビューになるの阻止できるの知らなかった!
Avatar
Kishikawa Katsumi 11/6/2018 5:37 AM
Storyboardの操作方法はまとめたい気持ちがあります
👍 4
Avatar
Visual Memory Debuggerで特定のUIImageのインスタンスを探す時とかに、同じ型のオブジェクトが多いと探すのに骨が折れるのですが皆さんどうされてますか? Autolayoutのエラーみたいにラベル付けられる機能とかありましたっけ
Avatar
omochimetaru 11/7/2018 9:07 AM
僕も知りたい
Avatar
アドレスで絞り込みはたまにします
👍 1
Avatar
omochimetaru 11/9/2018 6:11 AM
あれ?Mac向けのXIBでズームイン・ズームアウトができないんだけど、元からでしたっけ?
Avatar
元からです
Avatar
omochimetaru 11/9/2018 6:48 AM
そうか・・・。ありがとうございます。
Avatar
Renameで型名変更するときにファイル名も同時に変更される場合 IDE上ではリネームされたのに実ファイルがリネームされてなくて参照切れになってしまうの僕だけですか?
Avatar
あるある
Avatar
それ10.1でも治ってないよねw 先に手動でファイル名だけ変える癖ついた
🙋 1
Avatar
それ、うまくいく場合もあって、なんとなく Enter じゃなくてボタンをクリックした方がうまくいくことが多い気がしてる。けど、ボタンを押しても失敗したこともあったから、気のせいかもしれない。
Avatar
上手くいくときもありますね…最近割と成功率高い気はするんですが
Avatar
うまくいくこともあるのか。
Avatar
バージョン上がるごとに成功確率は上がってる気がする
Avatar
新規Fileでクラスを作って、名前変更すると参照が切れますけど、新規CocoTouchClassで名前変更は問題なさそう、他にはまだ試してないけど、NSObjectに継承するクラスは問題ないらしい。 (edited)
Avatar
cocoapodsでPodfileにbranch指定しているときに、最新のブランチを取得してくれないのですが似たような状況にあったことある方いますか?
4:38 AM
そしてremote側のgitからブランチを消してもpod updateが成功して昔の取ってくる…
Avatar
pod cache clean -all ダメでした
Avatar
Kishikawa Katsumi 11/30/2018 4:50 AM
大ざっぱな解決だと ~/Library/Caches/CococaPods を消せばOKです。
4:51 AM
厳密にはCocoaPodsはSpecsのmasterと個別に指定したSpecをそれぞれキャッシュしているので、それを消せばいいです。 ただどうせキャッシュなので、全部消したほうが問題解決には早いと思います。 (edited)
Avatar
あ、うまくいきました。 なんかfeature/branch_nameがあるとbranch: 'branch_name'でfeature/branch_nameを取りに行ってしまうっぽい…?
Avatar
Kishikawa Katsumi 11/30/2018 4:52 AM
なるほど。。?それは難しいですね。
Avatar
キャッシュ関係ないかもです、ちょっと再現できるかやってみます
Avatar
Kishikawa Katsumi 11/30/2018 4:54 AM
それだと feature/branch_namebranch_name がうっかり存在する場合は branch_name を指定できないんですかねえ。
Avatar
そんな感じの挙動になっていました
Avatar
Kishikawa Katsumi 11/30/2018 4:57 AM
そうするとわかりにくくなるけど手段としてはCommitを指定する、ですかね。
Avatar
ちょっと再現しなかったので
feature/branch_nameがあるとbranch: 'branch_name'でfeature/branch_nameを取りに行ってしまうっぽい…?
これは普通は起こらないっぽいです
(edited)
5:04 AM
あ、再現した
5:05 AM
remoteに origin/branch_name origin/feature/branch_name がある場合は Podfileに pod 'PodName', git: 'https://hoge.git', branch: 'branch_name' でorigin/branch_nameが入る(通常動作 (edited)
5:06 AM
ただしこの状態でorigin/branch_nameを消してpod updateするとPodfileはそのままなのにfeature/branch_nameが入る (edited)
5:09 AM
難しく考えてたけど、これ単純にbranch: 'branch_name'feature/branch_nameが入ってくるということか (edited)
Avatar
branch: 'branch_name'でorigin/feature/branch_nameを参照しているときに、origin/branch_nameが復活するとpod updateしてもorigin/feature/branch_nameを見続けてしまうような気がしたんだけど、これは再現しなかった
Avatar
omochimetaru 12/5/2018 2:21 AM
ViewDebuggerでメイン画面の3Dで表示されるところで、クリックして青く選択されたViewを、 左ペインのViewツリーでも選択したいんですが、どうやればいいんですか? いつも、左のツリーをコツコツ選択してたどり着いてます
Avatar
Wクリック?
Avatar
omochimetaru 12/5/2018 2:30 AM
ウッソ
2:30 AM
あ〜
2:31 AM
Focused したくはないのよね。
2:31 AM
これだと他のものが見えなくなって、大きさ感がわからなくなる
Avatar
クリックすると右ペインに選択したViewの情報出るから、アドレスをコピーして左ペインの下端の検索に入れればフィルターされるね
Avatar
omochimetaru 12/5/2018 3:32 AM
本当だ、ありがとう。でもフィルターを消すと選択が解除されちゃうのか・・・
Avatar
Navigate > Reveal in Debug Navigator
Avatar
omochimetaru 12/5/2018 3:44 AM
これだ!!!!!
3:44 AM
ありがとうございます〜〜〜
Avatar
omochimetaru 12/6/2018 8:27 AM
XcodeのInterfaceBuilderの中だと、 素のUIViewのintrinsicContentSizeが、現在のview sizeであるかのように振る舞うんですが、 実行してみると UIView.noIntrinsicSize ( CGFloatで -1 ) になってます。 実際、XIB上で、 intrinsticSizeをDefault ( System Defined) から Placeholder に変更した上で、 None にチェックを付けると、 実行時と同様の振る舞いになるんですが、 どうしてXIB上でのDefaultの値が、実行時とは異なるんでしょう?
8:30 AM
多分何を言ってるのかわからないと思うので再現キットを作ります
Avatar
omochimetaru 12/6/2018 8:42 AM
Contribute to omochi/UIViewIntrinsicSize development by creating an account on GitHub.
Avatar
Kishikawa Katsumi 12/6/2018 9:06 AM
StackViewがネストした場合はInterface Builderの見た目と実際の挙動が変わることはまあまあの確率であるんですよね。
Avatar
omochimetaru 12/6/2018 9:06 AM
なるほど。
9:07 AM
↑で書いてるように、intrinsicContentSizeをNoneにしてやれば同じ挙動になるので
9:07 AM
あえて違う挙動になるようにInterface Builderが作られてる理由が
9:07 AM
なんか考え方とか精神とかがあるのかなあと思ったんです
Avatar
Kishikawa Katsumi 12/6/2018 9:07 AM
これはStackViewのネストで思ってたよりややこしそうなんですが、よく見たら説明できそうな気はしますが。。。
Avatar
omochimetaru 12/6/2018 9:08 AM
横StackViewのFillの働きによって、並んでる要素のintrinsic sizeの縦制約が競合していて、並んでるLabelが251でhuggingしてるから、Viewが252でresistすると縮まなくて、251だとhuggingが勝つんだわ
9:08 AM
このケースの詳細自体は多分わかって、横StackViewの子どもたちが、IntrinsicSizeの高さで喧嘩するんですよね
Avatar
Kishikawa Katsumi 12/6/2018 9:09 AM
VerticalなStackViewの中に置いたViewの左右に10ポイントの空白を設けたいが、Conflicting Constraintsする ↑によって左右に空白を設けることができました。 StackViewを扱うには中にViewを置いてさらにその中に部品を...
添付画像のようにVerticalなStackViewの中に置いたViewの左右に10ポイントの空白を設けたいが、Conflicting Constraintsしてしまいます。 そもそも何故コンフリクトしているのかわかっていない 自分が付けたのはView.l...
Avatar
omochimetaru 12/6/2018 9:09 AM
Viewが750でResistして、Labelが250でHuggingするのがぶつかる
Avatar
Kishikawa Katsumi 12/6/2018 9:10 AM
理屈では制約は満たしていて、ランタイムには想定通りに動くけどIBだと違う、っていうのがありました。 ^ の操作をそのままやると再現できると思います。たぶん。
Avatar
omochimetaru 12/6/2018 9:10 AM
ほほう 読んでみます
9:12 AM
おお、一個目のやつ、最近格闘してて習得したやつだ・・・
9:13 AM
UIStackViewの子をもう一回UIStackViewかUIViewで包んでマージンつけるやつ
Avatar
Kishikawa Katsumi 12/6/2018 9:15 AM
面倒だったんですが、高さまたは幅のConstraintを付けるという回答がされてしまったんで急いで回答したやつ。
Avatar
omochimetaru 12/6/2018 9:23 AM
岸川さんの回答めちゃくちゃ丁寧ですね
9:24 AM
図が多くてすごい
9:24 AM
これ、ちょうど同じ話な気がするぞ・・・
9:25 AM
もう片方のViewの高さに関するintrinsicが実行時はNoneなのにXIBでは固定値を出すから、
9:25 AM
違うことになるけど、Hugging = 1000 にすればそれでも安定させられる
Avatar
Kishikawa Katsumi 12/6/2018 9:26 AM
AutoLayoutの説明は最終系だけ示しても理解できなくて過程を示す必要がある、(と私は思っている)のでオンラインでやりとりするにはかなり不向き。 という意味だとAutoLayoutの改善引き受けますというのは割りの良いバイトなる、、、のか?
9:30 AM
ここで一度実行してみてください。今回の場合、高さを決まっているビューが片方のビューだけなので、余った空間をUIStackViewがどのように解決するかはStoryboard上のシミュレーションと異なる場合があります。
^ ほんとはここで終われるはずだったのにXIBの見た目が違うから続きを調べる羽目になった、のを思い出しました。
9:31 AM
「ここで一度実行してみてください。」っていうの今見ても無理矢理で笑える。
Avatar
omochimetaru 12/6/2018 9:31 AM
なるほどw
Avatar
3DTouchの ShortcutItem から起動したパターンをXcodeでデバッグしたいんですけど、Wait for executable to be launched から起動するとデバッガアタッチしてるっぽいのですがログが流れず困ってます。
2:21 AM
何か解決策ありますか?
Avatar
launchOptionsに無理やり値ぶっこんだらとりあえず動いたからまあいっか・・
Avatar
Preprocessed-Info.plistにATSの設定を書き込んでConfiguration毎に設定を変更しようとしています。 Clean Build Folderを行った直後にビルド&実行すると設定が反映されます。 しかしそれ以降のビルドでは反映されません。ビルド処理を観察すると Preprocess Info.plist→Preprocessed-Info.plist書き換え→Process Preprocessed-Info.plist の順で処理されるべきと思うのですがしかし、Preprocess Info.plistが書き換えよりあとで行われてしまっています。 Run Script Phaseの順序を変更しても必ずPreprocess Info.plistがその後に処理されるように移動してしまいます。 この問題への対処の仕方を教えていただけないでしょうか?
Avatar
Kishikawa Katsumi 2/20/2019 3:48 AM
それはわかりますよ。まずNew-Build-Systemを使ってますか?
3:49 AM
で、その場合、ScriptPhaseでの書き換えはおっしゃる通りの状況で使えないのでそれ以外の方法で書き換えることになります。
3:52 AM
ScriptPhaseでの書き換えが使えないというか、ScriptPhaseでPreprosessed-Info.plistを書き換えるのが無理なので、それ以外のものを書き換えることになります。
3:53 AM
それ以外のものの例の1つがxcconfigで、 https://github.com/kishikawakatsumi/WorkaroundPreprocessInfoPlist ^ このデモプロジェクトはその方式で接続先を書き換えています。
Contribute to kishikawakatsumi/WorkaroundPreprocessInfoPlist development by creating an account on GitHub.
3:54 AM
https://twitter.com/k_katsumi/status/1044227769113096192 ^ これも一緒に読むといいです。
@lesamoureuses たぶんNew Build Systemのせい。New Build Systemだと、Preprocess Info.plist自体は実行されてるんだけど、Script Phaseよりも後で実行されるようになったのでScript Phaseの変更は消えてしまう。
Avatar
ありがとうございます!やってみます。
Avatar
すみません、このエラーの治し方に心当たりがある方いませんか?
1:58 AM
よければ教えていただきたいです..
Avatar
omochimetaru 2/25/2019 2:01 AM
IBDesignableを使ってて調子が悪いとそれになりますね
2:03 AM
僕の場合は、CleanするとかDerivedData消すとかXcodeをプロセス再起動するとか、その手のリセット系を一通りやって、それでも安定しないときはいったんIBDesignableを外します。
Avatar
IBDesignableとはなんでしょうか..
Avatar
omochimetaru 2/25/2019 2:11 AM
自作のビューをXIB上で可視化する機能ですけど、使ってないですか? https://qiita.com/stastaahaha/items/e45e7559255fb7666fd8

そもそもIBDesignableとIBInspectableって何もの?

Xcode 6から新たにできるようになった機能です。 遡ること3年前のWWDC 2014に発表された機能です。(ずいぶん前ですが。。。。) ...
Avatar
使ってないです..
Avatar
omochimetaru 2/25/2019 2:18 AM
ライブラリとかも入れてないですか?
Avatar
このプロジェクトにですか?
Avatar
omochimetaru 2/25/2019 2:19 AM
はい
Avatar
入れてないです
Avatar
omochimetaru 2/25/2019 2:21 AM
なるほど、そうすると原因は思いつかないです、いずれにしても対処としては↑に書いたものをやってみると良いと思います。
Avatar
Kishikawa Katsumi 2/25/2019 2:21 AM
Xcodeのバージョンはいくつですか?
Avatar
このプロジェクトだけじゃなくて今まで作った全プロジェクトこうなってます
2:22 AM
確認します
2:22 AM
10.1ですね
Avatar
とりあえずMac再起動とかで直りそうな感じがしなくもないです
Avatar
IDEBuildOperationMaxNumberOfConcurrentCompileTasksをデフォルト設定に戻したいのですが、デフォルト値ってどこかで確認できましたっけ
Avatar
削除すればデフォルト値に戻るのでは?
Avatar
ありがとうございます! defaults delete com.apple.dt.Xcode IDEBuildOperationMaxNumberOfConcurrentCompileTasks これで多分デフォルトになったと思います
Avatar
cocoapodsで同じライブラリの複数バージョンを入れる方法ご存知の方いらっしゃいますか? 使うライブラリのバージョンをリモートで切り替えたりしたいです 🤔
Avatar
Kishikawa Katsumi 3/19/2019 5:24 AM
普通の使い方だと無理ですね。
使うライブラリのバージョンをリモートで切り替えたりしたいです
ここをもう少し具体的に知りたいです。
Avatar
ライブラリの安定性の検証を十分に行う事が難しい時に、安定バージョンと最新バージョンのライブラリを入れてアプリをリリースし、問題が発覚した場合に安定バージョンにすぐに戻せるようにしたいという状況です。 複数バージョン入れる話とリモートから切り替える話はちょっと関係無かったかも知れないです
Avatar
omochimetaru 3/19/2019 5:33 AM
2つ同梱して配布して、実行時に切り替えるってことですか?
Avatar
そうです、そのイメージです。
Avatar
omochimetaru 3/19/2019 5:35 AM
iOSの実行機構からして普通にはできなさそう なんとか両方入れたとして、自前で切り替えるラッパー層のプログラミングが必要そう
5:36 AM
desktopアプリならDLLを置き換えちゃえばいいけど、iOSだとその辺のバイナリの変更がだめそう
Avatar
自前で切り替えるラッパー層
ここはprotocolで共通のIF提供してバージョンごとに実装したのを実行時に注入しようかなと思ってました
Avatar
omochimetaru 3/19/2019 5:37 AM
お、それならフレームワークのパッケージ名を変えてやればいけますね
5:38 AM
xcodeprojのPRODUCT_NAME
Avatar
なるほどですね! そしたらこれはcocoapodsではなくて、直接workspaceにxcodeproj突っ込んだ方が楽かも知れないですね…
Avatar
omochimetaru 3/19/2019 5:39 AM
ライブラリのソースコードの中でパッケージ名を明記してる場所があったら、そこも書き換えが必要になります
Avatar
ソースコード中にパッケージ名を明記することってあるんですか?
5:42 AM
pod "LibraryName" as: "LibraryNameMaster" pod "LibraryName", branch: "develop" as: "LibraryNameDevelop" みたいな機能欲しいと思ったのですがソースコードの変更の可能性も考えると難しそうですね…
Avatar
omochimetaru 3/19/2019 5:44 AM
例えば、sinって名前のグローバル関数を定義してる場合、 MyMath.sinとDarwin.sinをかき分けたり
5:45 AM
loadってグローバル関数があるとき、loadメソッドを持つクラスの中からそれを呼ぶときとか。
5:45 AM
ただloadって書くとメソッドのほうを指してしまうので。
Avatar
自身のパッケージ名で名前解決できるの知らなかったです、なるほど…
3:29 AM
10.2ですけど([])のインデントって前からこうでしたっけ?
3:29 AM
])が一段上がってて気持ち悪い
Avatar
Kishikawa Katsumi 3/27/2019 3:30 AM
NSLayoutConstraint.activate([ viewController.view.topAnchor.constraint(equalTo: view.topAnchor), viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor) ]) ^ 前からこう でこれが合わないので私は NSLayoutConstraint.activate([ viewController.view.topAnchor.constraint(equalTo: view.topAnchor), viewController.view.leadingAnchor.constraint(equalTo: view.leadingAnchor), viewController.view.trailingAnchor.constraint(equalTo: view.trailingAnchor), viewController.view.bottomAnchor.constraint(equalTo: view.bottomAnchor)]) こう書きます。
3:31 AM
😢
Avatar
なるほど前からですか……
Avatar
...( [ ..., ... ] ) こうすると結構綺麗になる気がする (edited)
4:28 AM
ラベルの位置で改行するのが良くって、リテラルは値なのでラベルと対であるべき、この場合はラベルが省略形なので…という考えです
Avatar
func test(_ a: (Int, Int)) {} test(( 0, 1 )) この場合閉じカッコもインデントつかないですけどタプルはリテラルって言わないんですっけ? (edited)
Avatar
リテラル扱いが正しいと思うのですが、如何せん全体的に不安定な気はする。公式フォーマッターはよ!という感じ。
Avatar
ですねぇ>公式フォーマッタ
Avatar
omochimetaru 3/27/2019 5:05 AM
4/10までレビューだよ
Avatar
ベースクラスの名前が同じだとモジュールが異なる場合でも片方の実装だと思ってimportされる…? https://github.com/noppefoxwolf/ConflictNameExample
Contribute to noppefoxwolf/ConflictNameExample development by creating an account on GitHub.
7:52 AM
Swiftだと問題ないな…
7:58 AM
というかObjCのCocoaFrameworkだと名前空間の解決できない…困った A.Core() B.Core() //Module 'B' has no member named 'Core'
7:59 AM
接頭詞つけようということですかね…
Avatar
そもそも objc だと名前のコンフリクト時の動作は不定なのでコンフリクトを解消しないとまずいのでは
Avatar
ObjC製のライブラリを異なる2バージョン入れようとしていて、名前が被ってしまうんですよね…
Avatar
Swift的記法で言う A.Core と B.Core に同名だが実装が違うメソッドがあった場合、いづれか一方の実装しかテーブルに入らないので、必ず問題が出ます
8:09 AM
経験則的に言うと後からロードされたほうが勝ち
Avatar
むーそうなのですね、ありがとうございます。 ファイルかなり多いので流石に諦めざる得ない…
Avatar
今思いついたんですけど、2つのバージョンを同時に使わないのであれば、各フレームワークを含むローダブルバンドルを作って必要な方だけloadするとかできそう
5:43 AM
ただ、ローダブルバンドルでバージョンによるインターフェイスの差異を吸収するラッパを書く必要がありそうですが (edited)
5:44 AM
いや、Swiftだとダメか (edited)
Avatar
Kishikawa Katsumi 4/1/2019 2:32 AM
コンパイル単位が異なればビルドはできて、なんとなく動きそうなので、 import A するファイルと import B するファイルを分ければ良さそうですが、 implemented in both ... は解消されないのでプロダクションに投入するのは不安ですねえ。
Avatar
コンパイル単位が異なれば
先に静的ライブラリとしてビルドしてしまってリンクするということですか?
Avatar
Kishikawa Katsumi 4/1/2019 7:18 AM
コンパイル単位はファイルなのでファイルが異なればOKそう、という意味です。
7:20 AM
例のプロジェクトではfoo()とbar()を両方同じファイルで呼び出すとダメなので、目的がバージョン違いの使い分けであれば、 ViewControllerForAとViewControllerForBという粒度で分けてしまえば、動作はしそうな感じでした。 (edited)
7:24 AM
ただ、Coreが衝突するのは避けられない implemented in both ... ので、本当に意図した通りに動作するかというと「?」ですね。 でそれはおそらく
先に静的ライブラリとしてビルドしてしまってリンクするということですか?
としても解決しないはずです。
Avatar
ファイル分けてもビルド通らないものだと思っていました、確かにファイル分ければビルドは通るんですね
Avatar
Kishikawa Katsumi 4/1/2019 12:37 PM
ただ、意図した挙動とは言えないと思います。変わるかもしれないし、変わらないかもしれない。うまくいかないケースもあるかもしれない。
Avatar
Kishikawa Katsumi 4/4/2019 5:02 AM
colorLiteralってリテラルだからUIColorでもCGColorでも気にしなくていいんだ。
Avatar
omochimetaru 4/4/2019 5:03 AM
なるほど 言われてみれば
5:05 AM
The Swift Programming Language. Contribute to apple/swift development by creating an account on GitHub.
5:05 AM
/// A type that can be initialized using a color literal (e.g. /// `#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1)`). public protocol _ExpressibleByColorLiteral { /// Creates an instance initialized with the given properties of a color /// literal. /// /// Do not call this initializer directly. Instead, initialize a variable or /// constant using a color literal. init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) }
5:06 AM
ユーザー定義した型でもカラーリテラルに対応できるのか?w
Avatar
Kishikawa Katsumi 4/4/2019 5:09 AM
おお〜。できるんじゃないかな。
Avatar
お、EasyImagyの RGBA を対応させられそう。
Avatar
omochimetaru 4/4/2019 8:39 AM
塗りつぶし処理とかの引数部分で色指定できる?
Avatar
@swift-5.0.3 struct Color: _ExpressibleByColorLiteral { init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) {} } func test(_ color: Color) {} test(#colorLiteral(red: 1, green: 0, blue: 0, alpha: 1))
Avatar
swift50 BOT 4/4/2019 9:01 AM
no output
Avatar
問題なさそう
Avatar
できた。
Avatar
omochimetaru 4/4/2019 10:40 AM
おもしろいw
Avatar
ジェネリックな型なので Conditional Conformance 使うことになった・・・。 public protocol _ColorLiteralChannel { init(_ez_colorLiteralFloatChannel: Float) } extension RGBA: _ExpressibleByColorLiteral where Channel: _ColorLiteralChannel { public init(_colorLiteralRed red: Float, green: Float, blue: Float, alpha: Float) { self.init( red: .init(_ez_colorLiteralFloatChannel: red), green: .init(_ez_colorLiteralFloatChannel: green), blue: .init(_ez_colorLiteralFloatChannel: blue), alpha: .init(_ez_colorLiteralFloatChannel: alpha) ) } }
10:42 AM
こういう場合に _ColorLiteralChannel のようなプロトコルを隠蔽したいんだけどできないのが最近の悩み。
Avatar
omochimetaru 4/4/2019 10:45 AM
隠蔽するとしたら、個別の型ごとのChannel == UInt8 とかをそれぞれ書く?
Avatar
うん。
Avatar
omochimetaru 4/4/2019 10:45 AM
そうすると実装が重複するからやだ?
Avatar
それを gyb でやってたんだけど、最近コード生成を止めるために Conditional Conformance に移行してて、めちゃくちゃすっきりしたんだけど internal な protocol が露出してしまうという問題が。
Avatar
omochimetaru 4/4/2019 10:46 AM
なるほど
Avatar
ここを解決できる言語機能がほしい。
Avatar
omochimetaru 4/4/2019 10:47 AM
フォーラムで見たことある気がする
Avatar
この問題を説明する小さな例を探してたあんだけど、↑の _ExpressibleByColorLiteralRGBA は良さそう。
Avatar
omochimetaru 4/4/2019 10:48 AM
なんかコアチームの人がややこしい事になるやつを指摘してたんだよなあ
Avatar
二重cond confとか禁止されてるけど、片方が見えないとややこしいことになりそう?それは今でもモジュールまたいで起こりうるのかな?
Avatar
omochimetaru 4/4/2019 1:00 PM
TLDR: Should we relax the access restriction for satisfying protocol requirements, at the cost of a small bit of indirection? Jordan reluctantly votes yes. Back in Swift 1, we had a rule that for a method to satisfy a protocol requirement, it must be at least as visible as e...
1:00 PM
ちょっと違う話かも。
Avatar
assoctypeが可視性周りで罠を抱えてて、二重condconfが許された世界ならその可視性の罠も解決されそう
2:28 PM
違う、generic protocolが必要、なのかな
Avatar
norio_nomura 4/22/2019 2:53 AM
Command Line Toolsに含まれるSwiftPM関連ツールがエラーで起動できない。 $ swift build dyld: Library not loaded: @rpath/llbuild.framework/Versions/A/llbuild Referenced from: /Library/Developer/CommandLineTools/usr/bin/swift-build Reason: image not found [1] 21778 abort swift build https://bugs.swift.org/browse/SR-10529
Avatar
Xcode10.2でWKWebViewを配置すると、手動でWebKit.FrameworkをlinkしないとWKWebViewが見つからなくて落ちるんですけど、他でもlinkできない系踏んだ方居ます?
Avatar
Kishikawa Katsumi 4/22/2019 5:46 AM
ARKitのARSCNViewとかが該当しますね。 原因はStoryboardだけからWKWebViewやARSCNViewをインスタンス化する場合はコードでまったく使ってないからAuto Linkが働かないことによります。 なので、どこかのコードで import WebKit して WKWebView をコードからインスタンス化しているようなことがあったら、WebKit.FrameworkやARKitをマニュアル操作でリンクしなくてもAuto Linkが働くので動きます。 ただ、最適化の有無で変わったりするのでエラーが起こった場合は明示的にリンクするようにするのが安全ですね。
🤔 1
👍 2
Avatar
omochimetaru 4/22/2019 5:48 AM
コードでまったく使ってないからAuto Linkが働かない
なるほど!!!
Avatar
Kishikawa Katsumi 4/22/2019 6:10 AM
MKMapViewはOKとか謎な挙動はありますが、MapKitはシステムの何かがデフォルトで使ってるとかあるのかな?
Avatar
なるほど、ありがとうございます!!
Avatar
norio_nomura 6/7/2019 10:05 PM
リモートデバッグが復活したのかな? https://twitter.com/wlisac/status/1136891335598718976
Remote debugging Swift on a Raspberry Pi from Xcode 🤯 Huge thanks to the Apple engineers for pointing me in the right direction at #WWDC19
Likes
343
Avatar
omochimetaru 6/9/2019 4:22 AM
マジ!?
4:22 AM
Server Side Linux、Xcodeでデバッグできるかしら
Avatar
norio_nomura 6/25/2019 4:57 AM
Xcode 11のエディタテーマ全部が、Documentation MarkupをHelveticaで表示する様に変えられたのは何故なのか。
Avatar
omochimetaru 6/25/2019 7:51 AM
Refactor > Generate Memberwise Initializer こんなのあったのか。
👀 4
Avatar
norio_nomura 7/12/2019 1:33 AM
Xcodeでsomeにカーソル合わせたら、その時の型をQuick Helpに表示してくれないかな。(FB6630816) (edited)
Avatar
Xcodeで自作クラスがメインストーリーボードのプルダウンメニューに表示されないバグが起きているのですが、どなたか対処法がわかる方はいらっしゃいませんか?
Avatar
norio_nomura 7/30/2019 1:38 AM
Xcode 11 beta 5、YAMLファイルのシンタックスハイライティングをサポートしたぽい。
👀 2
Avatar
norio_nomura 8/3/2019 11:24 PM
パスにスペースを含むエラー・警告が、Issue navigatorに表示されなくて悲しい。
Avatar
omochimetaru 8/9/2019 7:11 AM
Xcode11のXIB、UIScrollViewの中にContent Layout GuideとFrame Layout Guideができてる
7:11 AM
これ欲しかったものな気がする
Avatar
Kishikawa Katsumi 8/9/2019 7:14 AM
おおー、XIBで指定できるようになったんですね。良い改善。
Avatar
omochimetaru 8/9/2019 7:15 AM
iOS11からプロパティが生えてる事自体知りませんでした。
7:16 AM
スクロール空間のフチはContentLayoutGuideを使えば良くて、窓としてのスクロールビューのレイアウトはFrameLayoutGuideを使えばいいってことですよね?
Avatar
Kishikawa Katsumi 8/9/2019 7:20 AM
^ すまん、どっちがどっちかが分からないけど、 ContentSizeに影響するのはContentLayoutGuide(内容物によって広がる)、ScrollView自身との制約(いわゆるSuperviewとの関係)はFrameLayoutGuideです。
Avatar
omochimetaru 8/9/2019 7:21 AM
すいませんw
7:21 AM
UIScrollViewの中にUIStackView入れて縦長画面を設定してみたら期待した状態になったので多分あってそう。
Avatar
Kishikawa Katsumi 8/9/2019 7:21 AM
まあ同じことを言っている気がする。コードではiOS 11から書けたけど、XIBでもできるようになった、というのが改善です。
7:22 AM
Use Your Loafに詳しい解説があった気がするな。。
7:23 AM
Did you spot that iOS 11 added a couple of new layout guides to UIScrollView? If you find using Auto Layout with a scroll view confusing they might help you remember how to add your constraints.
🙏 1
Avatar
omochimetaru 8/13/2019 6:20 AM
beta5でframeworkのembedがわかりやすくなってる
6:20 AM
今まではembedとlinkで別の枠になってたけど、枠が合わさって、右で調節できるようになってる
Avatar
Kishikawa Katsumi 8/13/2019 6:36 AM
あ、Embedっていう欄で変更できるのか。全然理解してなかった。
Avatar
omochimetaru 8/13/2019 6:37 AM
Do not embed | Embed & Sign | Embed without Signing の3択になってますね。
Avatar
External Build Systemなターゲットの成果物を
  • プロジェクトツリーから参照可能にする
  • ターゲットに紐づける(要はproductReferenceを貼る) する設定をGUIからセットする方法ありませんか?
(edited)
Avatar
Kishikawa Katsumi 8/13/2019 10:58 AM
Makefileでビルドするようなライブラリがあって、それのソースコードとかいろいろをXcodeのワークスペースに追加しつつ、成果物の.aとかそういうのをメインターゲットにリンクする、ってことですよね?
Avatar
そうですね。Run Scriptで手でビルド、リンクすれば出来るんですが、できるだけXcodeのビルドシステムに載せたいです。
Avatar
Kishikawa Katsumi 8/13/2019 11:44 AM
できるだけXcodeのビルドシステムに載せたいです。
メインターゲットのビルドをトリガーにして、そのターゲットのビルドをメインターゲットの前に(要するに依存関係として)実行したいんですよね?
Avatar
その通りです
Avatar
Kishikawa Katsumi 8/13/2019 11:46 AM
昔のXcodeでいうと赤い2重丸のターゲットが作れて、Abstract Targetみたいな名前で、まさにそれを実現するものだったんですよね。 で、最近のXcodeそれがどこかに行っちゃって、ずっと不思議だったんですけど
Avatar
Aggregateですか?
Avatar
Kishikawa Katsumi 8/13/2019 11:47 AM
あ、そうそう。
11:47 AM
これがそうなんじゃないかという気もするんですけど、これは試しました?
11:49 AM
^ ちょっと作ってみたら赤い2重丸のターゲットができたのでそれっぽい。
Avatar
external build systemもaggregateも基本的に成果物に関しては何もお世話してくれないですね。
Avatar
Kishikawa Katsumi 8/13/2019 11:50 AM
このターゲットをBuild PhaseのDependenciesに設定すると、ターゲットのビルドの前にこのターゲットがビルド、はできるはずなんですけどできません?
Avatar
ただ、ターゲットのproject.pbprojを手書きして成果物の参照を作ってやると、ちゃんと依存をビルドしてくれるようになります。
11:51 AM
>Build Phaseの〜 ビルド自体は発火しますがリンク処理まではしないです (edited)
Avatar
Kishikawa Katsumi 8/13/2019 11:52 AM
リンクは別ですね。リンクは例えばCのライブラリだったらdistみたいなフォルダに成果物ができると思うので、それを参照するようにリンク設定を書く、あるいは、Xcodeのナビゲーションペインのツリーからドラッグすると行けると思います。
Avatar
はい、ただXcodeのクリーンコマンドとの整合性を保つ為に成果物はDerrivedDataのProductsに入っているので、BUILT_PRODUCTS_DIRから相対な特殊なファイル参照を貼る必要があるんですよね…
Avatar
Kishikawa Katsumi 8/13/2019 12:05 PM
なるほど。Build Settingsに書くなら簡単だけどそれをGUIでやりたいってことですね?
Avatar
あれ、リンクするライブラリってBuild Settingsに書けましたっけ
12:11 PM
GUIでやりたい、というよりXcodeの流儀に従ってやると、ライブラリを使う側が成果物のパスを気にしなくてよくなる、という方が大きいです
Avatar
Kishikawa Katsumi 8/13/2019 12:12 PM
ドラッグしたい、じゃなければBuildSettingsの OTHER_LDFLAGS.a なら-lcrypto とか、Frameworkなら -framework Firebase のように書きます。
12:14 PM
そうすると、 成果物はなんとかして BUILT_PRODUCTS_DIR 以下にできるとして、 LIBRARY_SEARCH_PATHFRAMEWORK_SEARCH_PATH$(BUILT_PRODUCTS_DIR)/... のようにライブラリのあるディレクトリを指定して、 Cのライブラリならヘッダもまとめて成果物に出力されると思うんで、 HEADER_SEARCH_PATH を同様に設定して、 OTHER_LDFLAGS を上記のように、SEARCH_PATH からの相対で指定します。
12:15 PM
で、メインターゲットのビルドで自動的に依存関係もビルドされるようにするには、Aggregate Targetを使う、が答えだと思います。
Avatar
Contribute to kateinoigakukun/KateiSandbox-Carthage-As-Static development by creating an account on GitHub.
2:02 PM
ライブラリxcodeprojに対して変更を加えずにbuild configをオーバーライドして、xcodeのビルドシステムだけでビルドできるようになりました。
Avatar
Kishikawa Katsumi 8/13/2019 2:17 PM
これ、KateiSandbox.app/KateiSandboxにAPIKitはリンクされてないように見えるけどなんで動くんかな?
2:22 PM
いや、SEARCH_PATHに載ってるだけでリンクしてくれるのか。
2:22 PM
そうなんだっけ?
Avatar
そもそもSEARCH_PATHを記述しなくてもリンクしてくれたんですよね…
3:05 PM
ちょっと挙動が掴めてないですが、ldのデフォルトの探索パスはカレントディレクトリを含むので、もしかしたらXcode内部のディレクトリ移動によってたまたまリンクできた可能性が高いですが…
3:06 PM
明示的にリンク設定を書いていないのに動いているのも気持ち悪いですね (edited)
Avatar
Kishikawa Katsumi 8/13/2019 3:13 PM
動かしてみたけどちゃんとリンクされてますね。Swiftモジュールは自動リンクの機構がある気もする。
Avatar
swift-autolink-extractなるものがあるんですね
Avatar
omochimetaru 8/14/2019 1:41 AM
swift-autolink-extract、文字列だけ見たことがあるけどなんなのか知らない
Avatar
銀座でAppleはXcodeのブックマーク機能を返せ!というデモ行進したい
Avatar
omochimetaru 8/19/2019 5:19 AM
Xcode11でインデントが↓こう変わった? _ = Single.deferred { ... }.flatMap { ... }.subscribe() (edited)
5:20 AM
以前は↓だったので _ = Single.deferred { ... }.flatMap { ... }.subscribe() 仕方なく↓こう書いてた _ = Single .deferred { ... }.flatMap { ... }.subscribe()
Avatar
beta5でSwiftSyntaxを依存に含むPackage.swiftが開けなくなったんだけど
11:42 AM
beta6でも治ってなかった
11:43 AM
あれswift-formatはいけるな
11:43 AM
自分のケースの何かが悪いのか
11:43 AM
multiple configured targets of 'SwiftSyntax' are being created for macOS
Avatar
.swiftpm消したりいろいろやってたら治った・・・
Avatar
omochiさんと一緒か分からんけど、Xcode 11 beta 6からインデント変わった気がする。何かよく分からん挙動になった
Avatar
omochimetaru 8/21/2019 1:36 PM
beta5と6で? (edited)
Avatar
そうだと思う。再現方法わかったわ
1:46 PM
このchaining methodがあった時に、.mapの下に追加したmethodは同じインデントになるけど、上に追加したら新しい行として認識される let foo = [1] .map(String.init)
1:46 PM
下に追加 let foo = [1] .map(String.init) .count 上に追加 let foo = [1] .count .map(String.init)
Avatar
omochimetaru 8/21/2019 1:54 PM
ほんとだ。
1:54 PM
3行選択してCtrl+Iすれば治るね。
Avatar
あとからchainの途中にmethod足すのやるときにこの挙動ちょっと邪魔だな... これ想定通りなのかな
Avatar
Kishikawa Katsumi 8/22/2019 4:38 PM
バグだと思うんですよね。Xcode 11で似たようなおかしいところを見つけていて、 let group = NSCollectionLayoutGroup.horizontal(layoutSize: NSCollectionLayoutSize(widthDimension: .fractionalWidth(1), heightDimension: .absolute(200)), subitems: [item]) (edited)
4:42 PM
^ わかりにくいけど、引数で改行したコード。2行目はコロンの位置で揃っている。 ^ の直後にコードをペーストすると2行目の頭の位置にペーストされます。
4:42 PM
1行空けるとOK。
4:43 PM
めっちゃイライラする。
Avatar
omochimetaru 8/23/2019 2:52 AM
Xcode11のヤバい挙動みつけた General / Identity / Display Name を変更すると、アプリの表示名だけじゃなくて product name も変更されるようになった。例えば メルカリ.app みたいになる。
Avatar
パス指定してると事故りそうですね
Avatar
omochimetaru 8/23/2019 2:53 AM
で、GoogleMaps.bundle.appのファイル名にカタカナが入ってると読み込めなくなる。
Avatar
ありゃー
Avatar
omochimetaru 8/23/2019 2:53 AM
逆に Build Settings / Product Name を変更した場合にも、Display Nameの方が連動して変更される。
2:54 AM
Xcode10からそれを開き直すと、Dipslay Nameの値が $(PRODUCT_NAME) になってる。
2:55 AM
Xcode11からこれらを別々にする場合、後からInfo > Bundle Display Name だけ変えると表示名だけ変更できる。
2:55 AM
でも、Generalのところで編集した瞬間に統合されちゃうからこれめっちゃ事故りそう 今の所app名がカタカナで生じる問題がGoogleMaps.bundleしか見つかってないけど。
3:02 AM
^ の直後にコードをペーストすると2行目の頭の位置にペーストされます。
↑これは再現できなかった。なんか条件があるのかな。
Avatar
norio_nomura 8/23/2019 3:57 AM
インデントの話は、Preferences… > Text Editing > Indentation に追加された Re-Indent on paste の事かな?
4:00 AM
デフォルトがオフだから、オンにすると以前と同じ挙動になるかも。
Avatar
Kishikawa Katsumi 8/23/2019 6:34 AM
お、そんな設定が。そして私の環境だけかもしれない可能性が。
Avatar
Xcode 11 beta 7でもインデントの挙動直ってなかった...
Avatar
omochimetaru 8/28/2019 2:37 AM
beta7でたのか
2:37 AM
あれ、catalina updateみえない (edited)
2:38 AM
Update to macOS Catalina beta 7 when it becomes available.
Avatar
catalinaはなかった気がする
Avatar
omochimetaru 8/28/2019 2:38 AM
これハメパターンのやつか
Avatar
yutailang0119 8/28/2019 2:38 AM
cttalina beta 7出てない
Avatar
omochimetaru 8/28/2019 2:38 AM
Xcodeだけ先にあげちゃうと詰む可能性が
Avatar
前もXcodeだけ先行で出して、catalinaはあとからくる
Avatar
omochimetaru 8/28/2019 2:39 AM
なるほど
2:39 AM
OS同梱ライブラリの部分で互換性壊れたりしないんか
Avatar
SwiftUI使ってるプロジェクトは変更なしでもビルドできた。Combineとかはbeta 6, 7 OSで間で互換性あるってことかな?
Avatar
omochimetaru 8/28/2019 2:41 AM
そのへんが謎なんよな
2:41 AM
SwiftUI PreviewはCatalina必須だったから
Avatar
yutailang0119 8/28/2019 2:41 AM
iOS 13.1 beta 1にも互換があるということ?
Avatar
omochimetaru 8/28/2019 2:41 AM
OS側とXcode側の両方に機能があって連携してるはず
Avatar
もしくはXcode 11 beta 7が大した変更入ってないとか。release note見てもぱっと見何が変わったかよくわからんw
Avatar
yutailang0119 8/28/2019 2:42 AM
バージョンばらばらでわけわからんくなってる
Avatar
omochimetaru 8/28/2019 2:42 AM
大した変更入ってない
それはありそうね
2:42 AM
最近会社と家2台で毎回3台アップデートしてるから大変
Avatar
yutailang0119 8/28/2019 2:43 AM
社のSlackで @ikesyo がこれのためではと教えてくれた > Xcode 11 beta 7 and later supports development for devices running iOS 13.1.
Avatar
omochimetaru 8/28/2019 2:44 AM
あ〜
2:44 AM
今回のリリースは13.1が主役 (edited)
Avatar
なるほど
Avatar
yutailang0119 8/28/2019 3:12 AM
めちゃくちゃ混乱したんだけど、beta 7の Welcom to Xcode画面 Version 11.0 beta 6 (11M392r) となっているけど、これbeta 7であっているよね?
3:13 AM
今までのbeta 6は 11M392q だった
Avatar
omochimetaru 8/28/2019 3:13 AM
Version 11.0 beta 6 (11M392q)
3:13 AM
Released August 27, 2019 Build 11M392r
3:14 AM
ほんとだね
3:14 AM
qがrになっただけだ
Avatar
yutailang0119 8/28/2019 3:15 AM
混乱して何回もunarchiveしてしまった
Avatar
omochimetaru 8/29/2019 2:53 AM
catalina beta7きた
Avatar
omochimetaru 9/11/2019 1:31 AM
Xcode 11 GM Seedきた
Avatar
omochimetaru 9/11/2019 9:49 PM
猫の死体
Avatar
その訳はあんまりだw
Avatar
var text: String! { didSet { // 補完が効かない t ← textが出て欲しい // self.だと補完が出る self.t ← これだと候補にtextが出る } } (edited)
7:06 AM
これ困ってるんですが何か解決方法ご存知の方いたら教えていただけると助かります🙇‍♂️
Avatar
Kishikawa Katsumi 9/12/2019 7:22 AM
補完が効かない、というのは textt と打っても出ない、、、ということですよね?
Avatar
そうです!
Avatar
Kishikawa Katsumi 9/12/2019 7:50 AM
解決方法はなさそうです。Feedback Assistant行きじゃないでしょうか。
Avatar
ありがとうございます!🙇‍♂️
Avatar
didSetは関数をコールするだけにして関数側に詳細な処理を書く、という感じになりそう。昔はlazy varにクロージャを渡した時、autocompleteがぶっ壊れていたので lazy var something = createSomething() private func createSomething() -> Something { ... } というようなコードをよく書いていました。 (edited)
👍 2
Avatar
Kishikawa Katsumi 9/16/2019 9:45 PM
UIScrollViewのFrame Layout GuideがXcode 11からIBでも設定できるようになった話がUseYourLoafに出た。 https://useyourloaf.com/blog/scroll-view-layouts-with-interface-builder/
Laying out a scroll view is a confusing task. I found it easier when, in iOS 11, Apple introduced frame and content layout guides. Too bad they neglected to add them to Interface Builder. That changed in Xcode 11. Here’s a quick guide on how to use them.
Avatar
omochimetaru 9/25/2019 9:21 AM
iOSAppとかのxcodeprojにSwiftPMの依存を設定するやつ、依存してるライブラリをちょっと変更するとかのワークフローに対応してないっぽく見える・・・
Avatar
Kishikawa Katsumi 9/25/2019 9:22 AM
お、どこで詰みます?
Avatar
omochimetaru 9/25/2019 9:23 AM
まずそもそも、IDE上でコードがエディットできない、リードオンリーになっちゃってて、それの解除方法がわからず。
9:23 AM
リードオンリーは別エディタで回避したとしても、SwiftPM自体だったら、$ swift package pinとかでエディットモードに入れるけど、 (edited)
9:24 AM
それに対応するGUIメニューもわからないし、
9:24 AM
アプリ自体はSwiftPMでない以上、コマンドラインからも無理そうだし。
Avatar
Kishikawa Katsumi 9/25/2019 9:25 AM
ああ、フォークまではしないけど手元でちょっと編集してデバッグしたいとかそういうやつですね。
Avatar
omochimetaru 9/25/2019 9:25 AM
そうですそうです。
9:25 AM
仮にフォークだったとしても、これだと一度pushする必要がありそうに見えますし・・・
Avatar
Kishikawa Katsumi 9/25/2019 9:25 AM
それはなんか無理そうだった記憶がありますね。なんか面倒だけどブランチを作ってそっちをみて最新にアップデートして、、、ってやった気がする。
Avatar
omochimetaru 9/25/2019 9:26 AM
ぐええ
9:27 AM
ちょうど新規プロジェクトなんですけど、まだCarthageでやろうかな・・・
Avatar
norio_nomura 9/25/2019 9:46 AM
予めローカルへクローンしておいて、そのパス(file:///Users/norio/github/Yamsとか)をXcodeで依存先として使うとか。 (edited)
9:48 AM
依存先に変更が必要な場合は、ローカルを変更するだけでpushしないでも使える。
9:52 AM
あ、相対パス(file://../Yams)でもいけるな。
9:53 AM
Carthageでサブモジュールとして追加して、サブモジュールの相対パスを指定すると良いのかも。
10:00 AM
あ、サブモジュールのパスはfile://…で参照できないみたい。
10:04 AM
相対パスはXcodeのGUIでは使えないな。フルパスで追加しておいて.pbxprojを直接編集しないと使えない…
Avatar
なるほど!?と思ったけど
相対パスはXcodeのGUIでは使えないな。
残念。フルパス指定だと他のマシンでビルドに問題が起きそうなのでダメですね。
(edited)
Avatar
追加時にダメなだけで、更新とかは相対パスでも普通に動きました。
Avatar
omochimetaru 9/26/2019 5:45 AM
Xcode11のInterface Builderに追加された、インスペクタの定規のアイコンのページの View > Layout > Automatic | Translates Mask Into Constraints めっちゃ便利だ。
5:46 AM
今までIBのルート階層にあるビューは上下左右端のconstraintが貼れなかったのと
5:46 AM
一度ルート階層に誕生したビューはあとから子供にしてもその貼れない呪いが定着しちゃったんだけど
5:46 AM
この属性で解除できる。
Avatar
yutailang0119 9/26/2019 5:50 AM
昨日の話題に出てるローカルのコードに依存したSwiftPM、WWDCのlabでもローカルでのことはまだあまりケアできてないねって反応だった
Avatar
omochimetaru 9/26/2019 5:53 AM
@yutailang0119 おお、Labの時点でそこまで突っ込んでたのか。
Avatar
呪いの解除はXML直書きで出来てた気がする
Avatar
omochimetaru 9/26/2019 5:55 AM
それは出来ると言って良いのか・・・
Avatar
ルート階層にHeight貼れないの、ムカついたのでXML直書きで貼り付けたことあるので
5:56 AM
多分出来るはず(出来るとは言っていない)
Avatar
omochimetaru 9/26/2019 5:56 AM
XML直編集が不要になったので良いアプデ
Avatar
すばらしいね
Avatar
omochimetaru 9/26/2019 5:56 AM
Avatar
インデント、trailing closureかどうかで変わるのね Single.just(()) .map { } Single.just(()) .map ({ })
5:55 AM
上のパターンが嫌で丸括弧つけてたらSwiftらしくないコードになってきた
Avatar
丸括弧つきいいね
Avatar
うむ、しばらく法則に気づかなくて混乱してた
Avatar
これ難易度高いよね
Avatar
Kishikawa Katsumi 10/10/2019 3:38 PM
やはり軽くて安定した結果が得られるフォーマッタが必要だな。
Avatar
swiftフォーマッタの議論を進めるためにわざと壊した説
3:39 PM
定期
Avatar
Kishikawa Katsumi 10/10/2019 3:44 PM
そうかもしれない。
3:44 PM
そんな気がしてきた。
Avatar
えw
3:44 PM
一応ジョークですよ
Avatar
Kishikawa Katsumi 10/10/2019 3:45 PM
😡
Avatar
🙇‍♂️
Avatar
Kishikawa Katsumi 10/10/2019 3:45 PM
ただフォーマッタは決まった結果を常にやってくれたらいいんだよな。 別にちょっと変でも慣れる。インデントが3とかでも別いいよ。
3:46 PM
議論は何が残ってるんでしたっけ?
Avatar
https://github.com/apple/swift-format レポジトリがあった
Formatting technology for Swift source code. Contribute to apple/swift-format development by creating an account on GitHub.
3:47 PM
違うわこれformatだw
3:47 PM
Hey all, I'm very excited to bring this pitch today to get more feedback from the community—it's an effort that my team at Google has been doing in collaboration with @dabrahams (co-author) and many other folks on the Swift team. SE pull request. An Official Style Guide ...
Avatar
議論はそもそも進んでなく、いったん却下された状態のはず
Avatar
255に別スレがあったけどそっちも閉じてますね
Avatar
Googleの人がリポジトリのコードを地道に改良続けてます
Avatar
4月だ
Avatar
たぶん次議論する時は、リポジトリのコードをそれなりに使える状態にしてから始める予感
3:53 PM
swift-formatはインデント等は設定ファイルで変更できるけど、フォーマットルールは変更できないんですよね。色々あるルール自体が気持ち悪いと慣れるまで時間かかる。ただとりあえずフォーマッターさえ実行すれば全員のコードスタイル合わせられるのは非常に楽
Avatar
Kishikawa Katsumi 10/10/2019 3:54 PM
フォーマットルールは別に変更できなくていいけどな。 自動でやってくれるやつがあったらそれでOKというのが大勢じゃないの。
Avatar
今はXcodeがランダムに壊してくる感じなので
3:54 PM
入れた方が良さそうな気がしますね
Avatar
Kishikawa Katsumi 10/10/2019 3:54 PM
AppCodeを使うという手もあるかな。。。
Avatar
AppCodeも独自のフォーマッターあって便利だけど、CI上で動かせるか忘れた
3:56 PM
swift-formatはまだパフォーマンス悪くて前試した時は結構時間かかった気がする
Avatar
Kishikawa Katsumi 10/11/2019 2:21 AM
そうかコマンドラインがあるかどうかとCIにAppCodeがインストールされてるのは見たことないな。
Avatar
@omochimetaru Xcodeでもパッケージのオーバーライドで一時的にライブラリの編集は出来ますよ https://t.co/xiaWE7K9oO の22:58あたり
10:36 PM
SwiftPMの依存先のオーバライド、一応できるっぽい。今度試してみよう。
Avatar
Kishikawa Katsumi 10/26/2019 9:11 PM
^ やってみた。十分やりたいことはできるけどめっちゃわかりにくいな。
Avatar
初見は絶対わからないですよね
6:51 AM
あと、Package.swiftを編集すると、オーバーライド状態がリセットされちゃうので、パッケージ開発の初期段階だとなかなか面倒
Avatar
Kishikawa Katsumi 10/27/2019 6:59 AM
私はほとんどしないからいいんですけど(全然わからないバグをPrintデバッグするときくらい)、依存ライブラリを編集しつつ開発って結構するんですか?
7:00 AM
めっちゃわかりにくいUIなのにXcodeが無駄に作り込まれていて感心した(皮肉やで)。プロジェクトにGitリポジトリのフォルダをドラッグしたら元のパッケージ参照は消えるし、それを消したら元のパッケージ参照が復活するし。
7:01 AM
横着してDrived Dataにクローンされてるフォルダをドラッグしたらクラッシュするけどな。
Avatar
結構やりますね、組み込んだアプリのサンプルとライブラリ自体を同時に作りたいので。 同じリポジトリの中に作ると余計なアセットがリポジトリ容量を食ったりするのが嫌で。 機能実装は頑張ってるなと僕も思いましたw
7:05 AM
あとパッケージを跨ぐかどうかで微妙なパスの振る舞いの違いとかも出るから。
Avatar
Kishikawa Katsumi 10/27/2019 7:12 AM
同じリポジトリの中に作ると余計なアセットがリポジトリ容量を食ったりするのが嫌で。
なるほど。これはとても理解できます。私はワークスペースで参照する方が楽だから妥協しますけど。
7:13 AM
あとパッケージを跨ぐかどうかで微妙なパスの振る舞いの違いとかも出るから。
確かにこれは私も別プロジェクトから参照するものを別に作ってやりますね。
Avatar
Generalタブに「Development Assets」っていうのがあるんですけど、いつからあったっけ?なにこれ
Avatar
Kishikawa Katsumi 11/29/2019 4:16 AM
Xcode 11のどこかからですね。Swift UI使ってるとプレビュー用の画像とかを別のAssetsで管理できるんですけど、
4:17 AM
ビルドしたらバンドルに入ってしまうように見えるんですよね。。。
4:17 AM
どういう挙動を期待していいのかよくわかってない。
Avatar
プレビュー用の画像とかを別のAssetsで管理できる
ほうほう。出荷ビルドには含めないAssetsってことですね。
ビルドしたらバンドルに入ってしまう
ええ・・・w
Avatar
Kishikawa Katsumi 11/29/2019 5:22 AM
アーカイブはまだ確認してないから期待したとおりに動くかもしれない。
Avatar
なるほど。
Avatar
omochimetaru 12/2/2019 3:05 AM
Generate memberwise initializerがclassにだけあってstructにないのはなぜなんだ・・・?
3:05 AM
一度classで作ってgenerateしてからstructに書き直す謎の技してる
Avatar
structはデフォルトで生えてるからとかそんな理由 publicなのが欲しいんすけどね
Avatar
omochimetaru 12/2/2019 3:07 AM
publicにしたいンゴね。
Avatar
そう、publicにしたいから欲しいです。
Avatar
Kishikawa Katsumi 12/4/2019 4:43 AM
Xcode 11のどこかからですね。Swift UI使ってるとプレビュー用の画像とかを別のAssetsで管理できるんですけど、 ビルドしたらバンドルに入ってしまうように見えるんですよね。。。
^ これアーカイブした場合は入らないことを確認しました。 だからプレビュー専用の画像はPreview Assetsに入れてOK。 普通にビルドした場合はAppバンドルに含まれるよ。
(edited)
👀 1
😁 1
Avatar
omochimetaru 12/5/2019 6:38 AM
Interface builderでAuto Layoutのマージンを設定する時に、
6:39 AM
0を入力しようとしても、文字の0が入らなくて、Standard という文字列になってしまい
6:39 AM
そのまま確定するとStandard マージン的な設定になっちゃうのですが、
6:39 AM
これ回避する方法ありますか?
6:39 AM
現状は一度standardで作ってから、Constraintの個別設定で0に戻してます
Avatar
Kishikawa Katsumi 12/5/2019 6:44 AM
それは私のところでは起こってないですね。 再現方法をもう少し教えてもらえますか?
Avatar
omochimetaru 12/5/2019 6:49 AM
少々お待ち
7:00 AM
動画にしました↑
Avatar
Kishikawa Katsumi 12/5/2019 7:04 AM
Constrain to marginsをOFFかな。 (edited)
Avatar
omochimetaru 12/5/2019 7:05 AM
動画の後半で、OFFの場合の操作をやってます、
7:05 AM
それはそれでまた違う困った挙動をする。
Avatar
Kishikawa Katsumi 12/5/2019 7:05 AM
ちゃんと見てみます。
Avatar
omochimetaru 12/5/2019 7:05 AM
後半70%ぐらいのところ。
Avatar
Kishikawa Katsumi 12/5/2019 7:11 AM
再現しないですね。何が違うんだろう。
Avatar
omochimetaru 12/5/2019 7:11 AM
こちらはVersion 11.2.1 (11B500)です (edited)
Avatar
Kishikawa Katsumi 12/5/2019 7:11 AM
私はそもそもStandardというのを初めて知ったくらい。
7:11 AM
Version 11.2.1 (11B500)
7:11 AM
いっしょ
Avatar
omochimetaru 12/5/2019 7:11 AM
Use Standard Value / Use Canvas Value は、以前からありました。
7:11 AM
でも、こうやって割り込んで入力されることはなかった。
7:12 AM
そうかあ・・・なんかいつの間にかこうなったんだよなあ・・・
Avatar
Kishikawa Katsumi 12/5/2019 7:12 AM
私の環境がおかしいのかな。私の環境だとStandardを選択しても何も起こらないように見える。
7:12 AM
Catalina?
Avatar
omochimetaru 12/5/2019 7:12 AM
Catalina 10.15.2 Beta(19C46a)
Avatar
Kishikawa Katsumi 12/5/2019 7:13 AM
OSの違いはベータかどうかか。ベータのマシンでやってみるかな。
7:14 AM
今ちょっとデスストランディングがエンドロールっぽいのに入った。 (edited)
Avatar
omochimetaru 12/5/2019 7:14 AM
えw今日は仕事はお休みですか? (edited)
Avatar
Kishikawa Katsumi 12/5/2019 7:14 AM
仕事の合間にやってる。
Avatar
omochimetaru 12/5/2019 7:14 AM
草 仕事の合間に仕事するやつだ・・・
Avatar
Kishikawa Katsumi 12/5/2019 7:14 AM
ただ最後の方はあまり区切りがなくて3時間ほど経過した。
Avatar
omochimetaru 12/5/2019 7:15 AM
僕は飽きちゃってから放置したままだ だいぶ進みましたね
Avatar
Kishikawa Katsumi 12/5/2019 7:16 AM
10.15.2 Beta (19C46a) <= ですよね?
Avatar
omochimetaru 12/5/2019 7:16 AM
はい、コピペしたので打ち間違いは無いです
Avatar
Kishikawa Katsumi 12/5/2019 7:19 AM
再現したっぽい。OSのせいなのか!?
7:20 AM
直しかたは分からない。。。何の役にも立てず。。
Avatar
omochimetaru 12/5/2019 7:20 AM
おおw再現はするのか、OSなのかw
7:20 AM
了解です、じゃあOSが新しくなって治るか、Release OSにもやってきてみんな困った頃になんかわかると思うんで、
7:21 AM
気にしないことにします、ありがとうございました。
7:21 AM
なんでOSの影響を受けるのかめっちゃ謎でウケる
Avatar
Kishikawa Katsumi 12/5/2019 7:21 AM
んー、なったりならなかったりだなあ。
7:23 AM
よく分からないけど、最初にSafeAreaに付けるかViewに付けるかを選んでるのをしなかったらどうなります?
Avatar
omochimetaru 12/5/2019 7:24 AM
それでも、同じですね
7:24 AM
今気がついたんですが、0を入力した後、
7:25 AM
タブキーを押したり、他のボックスをクリックする前に、
7:25 AM
Add 1 Constraintをクリックすると0のままサブミットできました。
7:25 AM
エディットフォーカスが外れる瞬間に0がStandardに置換される。
Avatar
Kishikawa Katsumi 12/5/2019 7:25 AM
それは不便ですね。
7:28 AM
うん、全然分からないけどBetaの方は再現性があるっぽい。 他の人の情報を待とう。
🙏 1
Avatar
Xcode 11 ビルド & iOS Simulatorでのみ、CIFilter(CIToneCurve)の出力画像(filter.outputImage)がぐちゃぐちゃになる現象で困ってるのですが、同じ現象にあってる方いらっしゃいませんか?  ・実機ではiPhone X/iPhone7のそれぞれiOS13.2.2/12.1.4で30分ずつラッシュテストをしても起きません。  ・アプリから該当部分のシンプルなPlaygroundを作っても再現します。 ぐちゃぐちゃっぷりは添付画像の通り、毎度違う感じです。真っ黒になってみたり、真っ白になってみたり。
😧 1
Avatar
再現環境のPlaygroundをアップしてみました。なんかやらかしちゃってるのかなぁ 🤔 https://github.com/hiralin/CIImageTester
CIFilter broken in Xcode11 with Simulator? Contribute to hiralin/CIImageTester development by creating an account on GitHub.
Avatar
↑画像にフィルタをかける処理を100回繰り返しているうちに、破損する画像がちらほら見られる、という感じです
Avatar
メモリリークしてるのでは?
7:59 AM
ループ内をautoreleasepoolに入れないと、メモリ食いまくる。
swift 1
Avatar
確かに!と思ってautoreleasepoolに入れてみ他ところ挙動が変わって、今度はフィルタかけた画像が全部真っ黒になるようになりました。なんかメモリ周りの問題はありそう...
Avatar
https://developer.apple.com/documentation/foundation/nsdatawritingoptions?language=objc おそらくですけど、真っ黒に関してはディスク書き込みがatomicなのが要因だと思います。外してみるとどうなるでしょう
🤩 1
Avatar
おお、ありがとうございます。writeのatomic外したら真っ黒が解決しました!
9:37 AM
しかも今のところ、15枚目までの画像が綺麗にフィルタかけられてます。
Avatar
あー、まだ繰り返してると真っ黒になっちゃうことありますね。 一度真っ黒になると、その後もずっと真っ黒。 けど虹色のジャギジャギは出なくなったかも...
Avatar
norio_/nomuraさん、tarunonさんありがとうございます。 Playground上でのジャギジャギ問題おそらく解決したかもです。 400枚連続で問題なく生成される状態になりました。 真っ黒も、autorelease追加後に一度だけ起きたのですが2度目は再現せず、という状態にできました。 途方に暮れていたのでだいぶ進展です。
Avatar
RunLoop.main.run(until:) しばらく経つと…ということはメモリが厳しそうだと思うので、 これ呼んであげたら解放されてくれないかな
10:22 AM
👆はautoreleaserunloopの外で呼びます
Avatar
until 1秒後、とかでwaitかけてあげるイメージですか?
Avatar
そうです。ループ毎に待つと厳しいので、10ループ毎とかで良いかと〜
Avatar
ありがとうございます、おかげでActivityMonitor上でメモリ右肩上がりにならない状態にできましたので、一気に1000枚くらい生成してみようと思います。
Avatar
norio_nomuraさん、tarunonさん、ご確認いただいたおかげで解決できました。 Playgroundで解決したのち、アプリ側のメモリリークもすべて解消したところ再現がなくなりました。 Dev forum行きかなぁと途方に暮れていたのでとても助かりました。ありがとうございます😊
🎉 7
Avatar
Kishikawa Katsumi 12/16/2019 10:13 AM
前におもメタさんが書いてたAutoLayoutのマージンがゼロにしてもStandardになっちゃうやつ、OSをアップデート(正式版)したら起こるようになった😡
Avatar
Kishikawa Katsumi 12/16/2019 11:24 AM
付けた後に編集する以外のワークアラウンドがなさそうなのがつらい
Avatar
正式版来たか
Avatar
GitHubアカウントにsshキーが登録されていないと、Xcodeはxcodeprojに含まれるgit:スキームで記述されたSwift Packageを取得出来ないのね。リポジトリがパブリックでもダメ。
12:20 AM
SwiftPM(というよりgitか)は、sshキーが登録されてなくても公開リポジトリならばgit:スキームでもOK
Avatar
Xcode 11.3.1はMac App Store版と.xip配布版でビルドナンバーが違うのね。
😞 1
Avatar
omochimetaru 2/6/2020 2:13 AM
Xcode11.4 beta で Standard どうなったかな。
Avatar
norio_nomura 2/8/2020 12:50 PM
Xcode 11.4 betaにはsourcekit-lspだけでなくclangdもついてくるのね。 https://clang.llvm.org/extra/clangd/
clangd is a language server that implements the Language Server Protocol
(edited)
Avatar
omochimetaru 2/10/2020 3:10 AM
AutoLayoutのマージンがゼロにしてもStandardになっちゃうやつ
Xcode11.4 betaで直ってた。普通にバグだったんかい。
Avatar
Kishikawa Katsumi 2/10/2020 3:10 AM
よかったよかった。
Avatar
omochimetaru 2/10/2020 3:11 AM
あ、途中で Catalina 10.15.4 + Xcode11.3 だとどうなのか確認すればよかった。
Avatar
Kishikawa Katsumi 2/12/2020 7:43 AM
Resolved Issues A rename refactor of a Swift or Objective-C object correctly renames the file containing the object. (32408445)
ついにファイル名の変更をともなうリファクタリングが正しく動くようになったか?
Avatar
omochimetaru 2/12/2020 7:43 AM
ww そういえば一生壊れてますねそれ
7:43 AM
慣れすぎて忘れつつあった
7:44 AM
従来でもうまくいくときもあったから、ためしづらいな。
Avatar
Kishikawa Katsumi 2/12/2020 7:44 AM
私ももうそういうものだとなりつつあったんですが、リリースノートをみて「これは!」と。
😁 1
Avatar
omochimetaru 2/19/2020 5:00 AM
5:00 AM
↑この.font のところで、ドットだけ入力して .font を補完させるのってできます? (edited)
Avatar
Kishikawa Katsumi 2/19/2020 9:07 AM
let attrs: [NSAttributedString.Key: Any] = [: ""] ^ 右辺をDictionaryリテラルの形にして、かつValueの方に何か入ってる状態なら補完が出ます。
Avatar
omochimetaru 2/19/2020 9:08 AM
ホントだ!!!
Avatar
norio_nomura 2/20/2020 5:39 AM
Xcode 11.4 betaからSchmeでLLDB Init Fileを指定できる様になってたのね。
Avatar
omochimetaru 2/20/2020 5:39 AM
ほお
Avatar
norio_nomura 2/20/2020 5:45 AM
あとbeta 2で、デバッグ実行時にXcodeのデバッグコンソールではなくTerminal.appを使う設定もSchemeに入ってる。 (edited)
Avatar
omochimetaru 2/20/2020 5:45 AM
え、すご!
Avatar
norio_nomura 2/20/2020 5:55 AM
いまいち動かない。
5:57 AM
TerminalへApple Script?でコマンドを送ってるぽいのだけど、1024バイトでコマンドライン文字列が途切れて、Terminal.app内でデバッガを起動出来ない。
Avatar
norio_nomura 2/20/2020 6:16 AM
~/.zshrcの先頭にreturnって入れたら動いた…
Avatar
Xcode11.4 だと let attrs: [NSAttributedString.Key: Any] = [. のタイミングで補完してくれるみたいですね。
Avatar
omochimetaru 2/20/2020 6:49 AM
おお。
Avatar
norio_nomura 2/20/2020 8:10 AM
xcodeprojなら$SRCROOT/.lldbinitとか指定できる。これもしかするとリモートlldb serverへの接続に使えるのでは。
Avatar
omochimetaru 2/20/2020 8:21 AM
これまで裏技で入力欄出してたやつの代わりに使えそう
Avatar
norio_nomura 2/20/2020 8:36 AM
そういえば裏技あったね、忘れてた。
8:37 AM
とりあえず、lldbコンソールの代わりにTerminalを使うオプションはoh-my-zshを使ってるとダメぽい。 (edited)
8:40 AM
zshをoh-my-zsh無しで使う理由が無いな。fishへ移行する理由が増えた。
Avatar
omochimetaru 2/26/2020 3:06 AM
switch文のrefactorでExpand Switch Cases あるの今知った 便利
Avatar
omochimetaru 4/15/2020 3:26 AM
#Apple is working to bring #Xcode on #iOS14 and #iPadOS14 according to @jon_prosser who was live on Gadget Cast on YouTube. Seems like Apple is working to bring more pro apps on the #iPhone and #iPad. #iOS #iPadOS #iPhone12 #Apple2020 #iPhone2020
Likes
105
🤔 1
Avatar
iPadには来てもおかしくなさそうな気も。
Avatar
これ来たらうれしすぎるけれど
3:32 AM
周辺ツールチェインもさわれないとつらそう
Avatar
omochimetaru 4/15/2020 3:32 AM
Gitは一応Xcode組み込みのやつがあるか・・・?
3:33 AM
画像リソースの操作とかもiPadOSの画像共有の枠組みでいける・・・?
Avatar
なんとか行けそうな気配はある。iPadOS に限って言えばファイラーもあるし…
Avatar
omochimetaru 4/15/2020 3:38 AM
Apple的にモチベどこにあるんだろ
Avatar
最近の新型 iPad Pro リリースに合わせてキーボード / マウス対応もかなり PC ライクになったらしい (未検証) し、PC に近づけたい or PC 市場を取りたいのかなぁ
Avatar
omochimetaru 4/15/2020 3:41 AM
iPad as 安いmac? (edited)
Avatar
iPad Pro は消費じゃなくて生産のためのデバイスみたいなこと熱心に言ってる印象。なので iPad Pro で開発はあってもおかしくないかなと。
3:43 AM
iOS アプリ開発において、デバイスに転送せずそのまま実行できるのはうれしいような気もするけど、デバッガとか使いにくそうだな・・・。
Avatar
omochimetaru 4/15/2020 3:43 AM
確かに最近はそんなこと言ってる気がする
3:44 AM
そうですねw自分自身の画面の奪い合いになっちゃうw (edited)
Avatar
そこで Split View なのかな?
Avatar
そこはお得意の slide over でなんとか
🙂 1
Avatar
omochimetaru 4/15/2020 3:45 AM
iPad上でのiPhoneアプリ開発なら、 (edited)
3:46 AM
バッチリいけそう。
Avatar
split だと view のサイズに制約が
Avatar
omochimetaru 4/15/2020 3:46 AM
ああiPadアプリでも画面が小さい変形してるときをデバッグしていると考えれば良いのか
Avatar
slide over の方がいいか。
Avatar
omochimetaru 4/15/2020 3:48 AM
そういえばswiftコンパイラはarm64をホストとしてビルドできるのかなあ。
3:48 AM
@Yuta Saito によると今はビルド(コンパイラをコンパイルするマシン)とホスト(コンパイラを動かすマシン)を分けられないらしいので
Avatar
Swift Playgrounds は?
Avatar
omochimetaru 4/15/2020 3:49 AM
あ、でも、Playgroundsがあるか
3:49 AM
あれどうやってビルドしてるんだ?
Avatar
playgroundはなんかつよつよentitlementがついてるはず
3:51 AM
あー、そういう意味じゃなくてか。
Avatar
omochimetaru 4/15/2020 3:52 AM
はい。
Avatar
appleってもうarm64のmacもってるはずだから
3:52 AM
そういうことかな
Avatar
omochimetaru 4/15/2020 3:52 AM
arm64のmacがあればいけると思いますがもうあるのか
Avatar
かなり前からあるっぽい
3:53 AM
すでにx86移行を過去にやってるからね...
Avatar
omochimetaru 4/15/2020 3:53 AM
macOSがある程度クロスアーキテクチャなコードになってるのか
Avatar
omochimetaru 4/22/2020 5:17 PM
Xcode11.4.1のInterface Builder, IBOutletにつなげても、 左のViewツリーインスペクタでのViewの名前が、 つなげているプロパティの名前に変わらない・・・ デグレってると思う
5:17 PM
View だらけでわけがわからん。手動で名前つけることはできるけど・・・
Avatar
viewの名前?
5:18 PM
(Interface Builder 初心者)
Avatar
omochimetaru 4/22/2020 5:18 PM
ツリー上での表示名。
Avatar
ああ、クラス名。
Avatar
omochimetaru 4/22/2020 5:18 PM
初期状態だとクラス名ですね。
5:18 PM
UIButtonとかUILabelは、タイトル文字列になってたりする。
Avatar
Kishikawa Katsumi 4/22/2020 5:48 PM
あ、それ私もなってる気がする。
5:50 PM
でもなんか必ずじゃない気がしたんですよね。新規プロジェクトだとなるのかな?
Avatar
Interface Builder を使うのを止めるよう Apple が暗にほのめかしているのかも。Swift UI 使えと。 (edited)
Avatar
Kishikawa Katsumi 4/22/2020 5:51 PM
ちょっとずつ使いにくくしてる?
Avatar
徐々にデグレさせて使う気をなくさせる作戦
Avatar
邪悪だw
Avatar
きっと Swift UI のアダプテーションレートがOKRにあって、
5:53 PM
様々な改善でメトリックをあげる努力をしているのですよ
Avatar
Kishikawa Katsumi 4/22/2020 5:54 PM
さっき新しく追加したXIBはプロパティの名前がタイトルケースで付いてました。iOSアプリのプロジェクト。ただし11.3のころからのプロジェクト。 それが起こったと思ったのはどういう状況だったかなあ。
Avatar
TwitterのいいねRTが押し易すぎるのを思い出した
5:56 PM
unfollow ボタンも押しやすい
👉 1
5:57 PM
XIBのバージョンって最初にさわったときに変わった気がするから
5:57 PM
2回目に開くときは治ってるかも? (edited)
Avatar
Kishikawa Katsumi 4/22/2020 5:57 PM
なるほどー
Avatar
omochimetaru 4/22/2020 6:23 PM
新規プロジェクトだとなるのかな?
たしかにXcode11.4.1で新規作成したホヤホヤのやつです
Avatar
Xcode 11.3をダウンロード... (edited)
Avatar
omochimetaru 4/22/2020 6:58 PM
あれ? Automatically trim trailing whitespace のサブ設定の including whitespace-only lines が壊れた?
6:59 PM
Auto Indentすると空行でもインデント挿入されて、git diffが赤くなる
Avatar
Kishikawa Katsumi 4/22/2020 7:02 PM
それは私の環境では問題ないですね。前と一緒です。
Avatar
omochimetaru 4/22/2020 7:02 PM
なるほど・・・
Avatar
Kishikawa Katsumi 4/22/2020 7:08 PM
それについては新しいプロジェクトでも大丈夫だと思います。
Avatar
omochimetaru 4/25/2020 7:39 AM
少し前のXcodeから、
7:39 AM
iOSアプリの General > Display Name を編集してエンター押すと (edited)
7:40 AM
Bundle Display Name = $(PRODUCT_NAME) PRODUCT_NAME = 入力した名前 (edited)
7:40 AM
が設定されてしまうせいで
7:41 AM
PRODUCT_NAMEはSwiftのパッケージ名などに影響するので Display Nameにカタカナが入ってたりした場合いろいろ壊れるっていう問題が
7:41 AM
14.1でもまだあるな。
7:41 AM
起動しなくなる、テストのimport 文が通らなくなるなど > いろいろ壊れる
Avatar
omochimetaru 4/25/2020 8:52 AM
[.foregroundColor: ] この補完でるようになったの助かる
Avatar
Xcode can show the view frames in a running app? Why didn't you tell me? Holy smokes! 🤯
Likes
167
Avatar
omochimetaru 4/30/2020 8:49 AM
Generate Memberwise Initializerは、structの上のところ右クリックしてやるけど、 好きなところ右クリックしてそこに挿入するようになってほしいな。 なんかやったらパッチ作れそうな気がする。 (edited)
Avatar
はじめまして。Swift初学者です。 チームでコードスタイルを統一するために、コードフォーマッタを導入しようとしているのですが、Xcodeのフォーマッタはappleのswift-formatを使うのが一般的なのでしょうか? また、SwiftLintのようなLinterも使っておられるのでしょうか?
Avatar
omochimetaru 5/18/2020 1:41 AM
主観ですが swift-format はまだそんなに普及してないと思います swiftlintのほうが使われていると思います。
1:42 AM
僕自身はXcodeの標準搭載されてるAuto-Indent機能 (Crtl + I )だけ使ってます。 (edited)
1:42 AM
予想として、将来的にはswift-formatに統一されていくと思います。
Avatar
swift-formatはmasterがちゃんと最新のxcodeに対応してインストールが楽になれば普及しそうですね
Avatar
omochimetaru 5/18/2020 1:44 AM
SwiftSyntax使ってるせいで動作が遅そうなのは解決したんだろうか。 (edited)
Avatar
こういうPR立ってるし速度に関してはまだまだなのかな https://github.com/apple/swift-format/pull/117
Previously every source file was formatted / linted one by one. On our codebase this took a full project format from ~17 minutes to ~5 minutes.
Avatar
omochimetaru 5/18/2020 1:56 AM
17分はやべえな。
Avatar
ありがとうございます! 遅いのはイマイチですね。 例えば func bad (){...}func good() {...} にしたいんですが、swift-formatを使わない場合は、現状難しいってことですね
Avatar
omochimetaru 5/18/2020 2:31 AM
Swift Lintでそれは直せないんですっけ?
Avatar
お、そうなんですね。 確認してみます。
Avatar
omochimetaru 5/18/2020 2:33 AM
(使ってないからわからないです
Avatar
norio_nomura 5/18/2020 2:52 AM
swiftlint autocorrectとかで直せると思う。swiftlint autocorrect --formatすると追加でXcodeのAuto-Indent相当だったはず。 (edited)
Avatar
SwiftLintのOperator Function Whitespaceルールで実現できそうです。 ありがとうございました。
Avatar
norio_nomura 5/18/2020 3:22 AM
){opening_braceで直せそうだけど、bad (は直せなさげ。
Avatar
Kishikawa Katsumi 5/18/2020 5:19 AM
https://github.com/nicklockwood/SwiftFormat Nick LockwoodさんのSwiftFormatがよく使われてると思います。 これは func bad (){...} も直せるはず。
👀 1
5:20 AM
A command-line tool and Xcode Extension for formatting Swift code - nicklockwood/SwiftFormat
Avatar
swiftformatでググったら先頭にでてくるやつですね。情報ありがとうございます。検討してみます。
Avatar
この輪っかのマークって探してもなかったんですが どうすればいいですか;; https://cdn.webprofessional.jp/wp-content/uploads/sites/2/2017/08/16203501/1502883278_image18.png
10:40 AM
②の
Avatar
yutailang0119 5/23/2020 10:41 AM
In Xcode 10, the toolbar had an inter-locking ring icon which showed the assistant editor, it's missing in Xcode 11.
10:41 AM
Assistant Editorってやつ
Avatar
ありがとうございます!
Avatar
omochimetaru 6/23/2020 7:15 AM
Xcode12 結構見た目かわっとる
Avatar
omochimetaru 6/23/2020 7:25 AM
なんか補完のときの情報が増えてる
7:31 AM
Add Equatable Conformance
Avatar
omochimetaru 6/23/2020 7:44 AM
クロージャの新インデント完璧だ
7:47 AM
閉じカッコ側の改行によって内側のインデントが変わるのは不思議な感じだけどわかれば便利 (edited)
Avatar
omochimetaru 6/23/2020 8:06 AM
以前インデントのためにつけてた余計な丸括弧を消しまくってる
👉 1
Avatar
omochimetaru 6/26/2020 8:15 AM
Xcode12かなり良いですね インデントとか補完とか
❤️ 1
8:15 AM
でもめちゃくちゃ重いときがちょいちょいある
8:15 AM
Xcode10?ぐらいのベータのときも同じような激重現象があった気がしていて
8:15 AM
なんなんだこれ デバッグビルド?
Avatar
重いのこれと同じなのかなー https://developer.apple.com/forums/thread/649930 とりあえずベータはデバッグビルドではありません。重い時があったら発生中に spindump か sysdiagnose 取ってフィードバックして欲しいです
Avatar
omochimetaru 6/27/2020 8:26 AM
なるほど。それやってみます。 作業してると突然発生して(予測困難)かつ10秒ぐらいで解消してしまう感じなので難しいですが。
Avatar
CPU負荷が一定以上になると勝手に診断レポートが作られて、コンソールの診断レポートに載って来る。 アクティビティモニタを見ると、診断レポートが作られた頃にspindumpが動いてるから、その診断レポートがフィードバックに使えるのかな? (edited)
Avatar
ああ、そういう自動観測してくれる仕組みなのか よさそう
Avatar
診断レポートは、OSセットアップ時「Mac解析を共有」オプションをオンにして以降、そのオプションをオフにしても自動生成されてる気がします。
Avatar
omochimetaru 6/30/2020 8:47 AM
Refactor Rename ファイル名残るバグも直ってる・・・?
Avatar
12治ってるんですかヤッターーー!!
Avatar
omochimetaru 6/30/2020 8:48 AM
今は成功した。
Avatar
前からうまくいくときもあったので信用できない・・・。
Avatar
ゴミがプロジェクトツリーからは消えてディレクトリに残るせいでCIのxcodegenで気が付くということを繰り返しており
Avatar
omochimetaru 6/30/2020 8:48 AM
リネームして、普通にビルド通って、あれ、なんか物足りないな・・・あ!みたいな。
Avatar
CI+xcodegenですんでの所で助かってる、ということでもある
Avatar
Xcode12のアップデートってしたほうがいいんですか? (edited)
Avatar
omochimetaru 7/2/2020 3:19 AM
12はベータ版です、ベータ版だとストア申請とかできないです だからアップデートするのではなくて、11と両方使い分ける必要があります
Avatar
Xcode 11と12は共存できるふう
Avatar
omochimetaru 7/2/2020 3:49 AM
3:49 AM
基本的に共存できるっぽい
Avatar
10と11 betaは厳しかった
4:06 AM
xcodeいっぱい飼ってらっしゃいますね
Avatar
omochimetaru 7/2/2020 4:06 AM
勝手に増えちゃうんですよねこの子
Avatar
うちにはつねに2ひきしかいないんだけど。
Avatar
yutailang0119 7/2/2020 4:20 AM
うちは活発なのは今3ひきだけど、冬眠中がいっぱいいます
Avatar
うちは脳だけ移植したのとかがいます🤯
😮 1
😫 1
Avatar
xcodeだらけですね笑
12:26 PM
なるほど。ありがとうございます!
Avatar
確かに互換性考えるとどんどん増えますね。
Avatar
Kishikawa Katsumi 7/12/2020 8:20 AM
Xcode 11.5だけどなんか @IBSegueAction に繋ごうとしたときに一回で繋がらなくて(繋げてもリロードしたら消える、みたいな)違う手順で何回かやらないと繋がらない、ってことが起こるな。
Avatar
そういえばXcode12でもリネーム後にゴミが残る現象再現しちゃいましたね
Avatar
omochimetaru 7/12/2020 9:38 AM
あら・・・
Avatar
Kishikawa Katsumi 7/12/2020 5:44 PM
Xcodeでアウトレット接続したときに名前が付くか付かないかってUIViewだと付かないけどButtonだと付く、みたいな法則がありそう。
5:44 PM
前は全部ついてたと思う。
Avatar
omochimetaru 7/12/2020 5:44 PM
UIViewにつかなくなったの不便
Avatar
Kishikawa Katsumi 7/12/2020 5:58 PM
UIViewが一番わからないし。セパレータとかなんとかコンテナとか。
5:59 PM
いや、このルールもなんとなく付いたり付かなかったりを確認してるだけで合ってるかどうかわからないけど。
Avatar
XIBを使わないという解決方法
Avatar
Kishikawa Katsumi 7/12/2020 9:45 PM
いやあ、XIBは使えるところは使った方が楽だと思いますよ。
Avatar
まあ使っことないのでなにがいいのか知らないという感じ
9:46 PM
コードでできないことはないけど
9:46 PM
XIBじゃできないこと多そう&コンフリクトしたら地獄そう
Avatar
Kishikawa Katsumi 7/12/2020 9:49 PM
まあどっちも正しいです。
コンフリクトしたら地獄そう
特にこれはしんどいです。
9:49 PM
複数人でXIBを触らない必要はありますね 😢
Avatar
SVN時代のおもひで
Avatar
Kishikawa Katsumi 7/13/2020 3:06 AM
XIBとStoryboardはビジュアルエディタ兼AutoLayoutのシミュレータとしては非常に便利だけど出力形式のデメリットがそれを帳消しにしてしまうくらいなんだなあ。。
Avatar
時代はSwiftUIのようなので、XIBは滅びゆく運命に...
Avatar
Kishikawa Katsumi 7/13/2020 3:18 AM
SwiftUIはいいですね。
Avatar
interface builderからの流れで行くと一時代終わる感じなのかな...
Avatar
omochimetaru 7/15/2020 7:11 AM
Xcode12のブレークポイントにConstraint Error Breakpointってのが追加されてるけどこれなに?
7:12 AM
Auto Layoutの制約エラーで止まるのかしら?
Avatar
Kishikawa Katsumi 7/15/2020 7:19 AM
12より前からあるんですけど、いわゆるランタイムにログばたくさん出るやつでは止まってくれないですね。
Avatar
omochimetaru 7/15/2020 7:20 AM
なるほど。気づいてなかった。。
Avatar
あれ?止まりませんでしたっけ
Avatar
壊れたときに呼ばれる特別なシンボルがあって、今まではその特別なシンボルをブレークポイントに設定する、みたいなことしないと止まらなかったけど、ボタン一つでできるようになった? (edited)
Avatar
今まではその特別なシンボルをブレークポイントに設定する、みたいなことしないと止まらなかったけど
せやった
(edited)
Avatar
Kishikawa Katsumi 7/15/2020 7:23 AM
UIViewAlertForUnsatisfiableConstraints これでしょ。 これに止まるケースを止めてくれるわけではないっぽい。Xcode 11ですけど。
👈 1
Avatar
omochimetaru 7/15/2020 7:23 AM
じゃあいつ止まるんだ・・・
Avatar
えー、思ってたのと違うのか…
Avatar
https://developer.apple.com/forums/thread/98280 AppKit でしか動かないとのこと
Avatar
Kishikawa Katsumi 7/15/2020 7:33 AM
なるほど
Avatar
omochimetaru 7/15/2020 7:36 AM
なるほど!?
Avatar
よくわからないけど、なんかPlaygroundで UIViewcontroller.view.layer アクセスしようとすると落ちるっぽい 🤔 import PlaygroundSupport import UIKit let controller = UIViewController() controller.view.layer.cornerRadius = 10 // ←これをコメントアウトすると問題なくビルドできる controller.view.clipsToBounds = true PlaygroundPage.current.liveView = controller 何か分かる方いらっしゃいますかね?
1:29 PM
ちなみに UIView() で作れば問題ないです、UIViewController().view の時だけです
Avatar
omochimetaru 7/17/2020 1:50 PM
UIViewController().viewnil ではないですよね?
Avatar
layerがnil?
Avatar
ほんとだ
6:58 PM
.cornerRadius = がダメっぽい
7:00 PM
import PlaygroundSupport import UIKit let controller = UIViewController() let layer = controller.view.layer layer.cornerRadius = 10 controller.view.clipsToBounds = true PlaygroundPage.current.liveView = controller
7:00 PM
これならいい
Avatar
🤔 それはそれで謎ですね
Avatar
VC.view.layer 直アクセスする時何か別の動作してるのかな?
Avatar
なぜか型が見えなくなるとか?
Avatar
どの道多分これXcodeのバグの可能性が高いですよね?(Xcode 10の時はうまくいけてたはずですので
Avatar
12b2で試しました
Avatar
自分は12での動作まだ試してないですが、11ではこれ発生しています
7:15 PM
ちなみに12b1ではさらにWorkspace内に置いてあるPlaygroundが、同じWorkspaceで作ってるライブラリーをimportできないです(b2はまだ試してない)
Avatar
11でも試してみよう
7:16 PM
"expression failed to parse, unknown error"って言われる...
Avatar
yutailang0119 7/23/2020 2:32 AM
Xcode 12 beta 3で、Universal App統合された (edited)
Avatar
omochimetaru 7/29/2020 9:17 AM
Xcode 12 beta 3 で ファイルを開く動作が変わった?
9:17 AM
いつのまにかタブをめっちゃたくさん開いている状態になっていた
Avatar
vscみたいな感じかな
Avatar
omochimetaru 7/29/2020 9:35 AM
かも?
Avatar
ちょっとちがう
4:13 PM
Tabと、開いてるファイル(vimのバッファーみたいなやつ)は違う概念だったりする (edited)
4:14 PM
タブ全部とじてXcode再起動するとタブ復活するんだよなあ(バッファーが残ってるから)
Avatar
Xcode 12、AppKitのタブとXcodeのタブの二つあってややこしい (edited)
Avatar
⌘-Ctrl-Wと、⌘-Shift-Ctrl-Wの挙動がbeta2と3で変わってて非常にややこしい
4:50 PM
Beta 3 で Xcode 11 と同じに戻ったのはたすかる
Avatar
omochimetaru 8/6/2020 5:35 AM
Refactor Renameやっぱりまだ壊れてた
5:35 AM
クラス名を変更したらファイルが増殖して
5:35 AM
Xcodeで開いてるやつとプロジェクトに追加されてるやつが食い違って
5:36 AM
プロパティがあるのにコンパイルするとそんなプロパティは無いって言われてハマった・・・
Avatar
多分ですけど、gitに自動でaddしたりする機構が悪さしてるっぽいんですよね
Avatar
omochimetaru 8/6/2020 6:13 AM
ふむ〜
Avatar
git に自動で add ってうれしいのかな?いつも要らないなぁって思うんですが・・・。
Avatar
どうせ後でまとめて整理するのでそっとしておいて欲しい
Avatar
omochimetaru 8/6/2020 7:03 AM
7:04 AM
外せるんじゃないか?
Avatar
もしかしてこれ外しておけばリネーム失敗起こらない?
Avatar
omochimetaru 8/6/2020 7:07 AM
多分ですけど、gitに自動でaddしたりする機構が悪さしてるっぽいんですよね
もし、そうなら、そうw
Avatar
omochimetaru 8/18/2020 3:05 AM
タブの中に履歴があって、 Cmd+Wはタブの中の履歴を閉じて、 履歴が0件になる時にタブが閉じるのか。
Avatar
MacやiPhone向けのアプリケーションを開発するための総合開発環境であるXcodeで作成されたプロジェクトを対象としたマルウェアの存在が明らかになっています。
Avatar
ソースコードにコードインジェクトしてくるとかなかなか高次な攻撃
Avatar
そのトレンドマイクロの技術資料に
macOS protects the Safari cookie file ~/Library/Cookies/Cookies.binarycookies with the System Integrity Protection (SIP) feature
sudo ls ~/Library/Cookies/Cookies.binarycookies # ls: Operation not permitted とか書かれてるけど、手元で試す限り普通にCookies.binarycookiesを読める。 何か違うバージョンの話なのだろうか… 🤔 https://documents.trendmicro.com/assets/pdf/XCSSET_Technical_Brief.pdf
Avatar
もしかして、システム環境設定 → セキュリティとプライバシー → プライバシー → フルディスクアクセス に ターミナル.app が入ってませんか? 私の環境では入れてないので Operation not permitted になりますね $ sudo ls ~/Library/Cookies/ ls: : Operation not permitted
1:15 AM
って思ったけど sudo ls ~/Library/Cookies/Cookies.binarycookies は通るのか…
1:16 AM
属性は見れるけどファイルの中身は見れないっぽい $ sudo file ~/Library/Cookies/Cookies.binarycookies .../Library/Cookies/Cookies.binarycookies: cannot open: Operation not permitted
Avatar
フルディスクアクセス に ターミナル.app が入ってませんか?
入ってました。なるほど、ありがとうございます。何のために入れたのか…
Avatar
フルディスクアクセスからsshd-keygen-wrapperを除外すると、scpCookies.binarycookiesをコピー出来なくなる。
Avatar
omochimetaru 9/3/2020 5:42 AM
Xcode12 beta6, Package.swiftを開いたプロジェクトで、依存先をD&Dしてローカル編集すると、削除がバグって
5:43 AM
本来はリストから消してローカル編集の終了になるはずが、 ファイルシステムの実体を削除してくるありえん
😱 1
4:25 PM
Xcode っぽい。
Avatar
omochimetaru 9/3/2020 4:25 PM
いやーw
Avatar
ファイル操作が苦手
Avatar
omochimetaru 9/3/2020 4:26 PM
ローカル編集とその解除は必須のオペレーションなんで普通に困る
4:26 PM
$ swift package側でpinしてから開いたらうまくいくかなあ
4:26 PM
pinじゃなくてeditか
Avatar
消す系の挙動は困るのはわかる
Avatar
Xcode 12.0.1。Preferences→Components→Simulators。…あれ?iOS、tvOS、watchOSの類がごっそり消えてる? 2020-10-03追記: 今朝、Xcodeを(2020-09-25以来)久し振りに起動したら、iOS、tvOS、watchOSのSimulator達がリストに表示される様になってた。ってことは、前回の挙動は、キャッシュ再作成か何かで、「たまたま」リストが見えかった、だけ?? (edited)
Avatar
12.0.1でたの!
Avatar
Xcode 12.0.1の直ダウンロード出てる。
👀 2
Avatar
Xcode 12のXCTest.swiftmoduleはSwift 5.2以前と互換性がないから、Swift 5.2以前のOSS Toolchainでテストしたい時は、Xcode 11.xを使わないといけないのね…
/Applications/Xcode_12.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/XCTest.swiftmodule/x86_64-apple-macos.swiftinterface:58:52: error: use of unknown directive '#filePath' convenience public init(filePath: StaticString = #filePath, lineNumber: UInt = #line)
Avatar
あー、filePathがswiftinterfaceに出てきちゃうのか…
Avatar
はえー
Avatar
swift test --destination destination.jsonすることで、Xcode 11.x無しにSwift 5.2以前のOSS ToolchainでXCTest使えた。 destination.json: { "extra-cc-flags": [], "extra-cpp-flags": [], "extra-swiftc-flags": [ "-I", "/Library/Developer/Toolchains/swift-5.2.5-RELEASE.xctoolchain/usr/lib", "-F", "/Applications/Xcode_12.0.1.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks" ], "sdk": "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/", "target": "x86_64-apple-macosx", "toolchain-bin-dir": "/Library/Developer/Toolchains/swift-5.2.5-RELEASE.xctoolchain/usr/bin", "version": 1 } (edited)
12:16 AM
ちなみに-Xswiftc-Iを渡す方法だと、OSS Toolchain添付のXCTest.swiftmoduleを優先させられなかった。
Avatar
Kishikawa Katsumi 10/28/2020 5:23 AM
5:24 AM
Xcode 12でなぜかこのコードがシミュレータだけビルドできないってのがあって、レポートしようとこういう最小限のサンプルを作ったところで確認したらXcode 12.1以上ならビルドできるように直っていた。
Avatar
ヘッダがミスってるんかな?
Avatar
Kishikawa Katsumi 10/28/2020 5:36 AM
なるほど。と思ってジャンプしてみた感じ別にシミュレータだけダメになるような要素はなさそうですね。
Avatar
ふーむ
5:37 AM
xcodeのdestinationをシミュレータにした状態で、ですよね? > ジャンプ (edited)
Avatar
Kishikawa Katsumi 10/28/2020 5:40 AM
いや、コンパイルエラーの状態だと全然飛べないんでデバイスでビルドして飛びましたね。Generatedじゃなくて元々のヘッダでみましたが、それ以上詳しくはみてないっすね。
Avatar
うちまだ12だったのでやってみたら再現した。
Avatar
Kishikawa Katsumi 10/28/2020 5:47 AM
上のコードは現場のコードの再現なんすけど、もっと最小限の直接のエラーの原因としてはsupportedFlashModesがプロパティにない、っていう感じですね。
Avatar
そうですね
Avatar
Kishikawa Katsumi 10/28/2020 5:48 AM
imageOutput.supportedFlashModesだけでダメ。ヘッダの記述はその周辺を見る限りは12.0と12xで変わってないように見えます。
Avatar
/*! @property supportedFlashModes @abstract An array of AVCaptureFlashMode constants for the current capture session configuration. @discussion This property supersedes AVCaptureDevice's isFlashModeSupported: It returns an array of AVCaptureFlashMode constants. To test whether a particular flash mode is supported, use NSArray's containsObject API: [photoOutput.supportedFlashModes containsObject:@(AVCaptureFlashModeAuto)]. This property is key-value observable. */ @property(nonatomic, readonly) NSArray<NSNumber *> *supportedFlashModes API_UNAVAILABLE(macos);
5:49 AM
/Applications/Xcode12.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/Frameworks/AVFoundation.framework/Headers/AVCapturePhotoOutput.h
5:49 AM
定義はあるなあ。
5:49 AM
その上にある > isCameraCalibrationDataDeliverySupported は読める。
5:49 AM
やや autoRedEyeReductionSupported もないぞ (edited)
5:51 AM
他のものはありますね
5:52 AM
ええ〜なんだどういうことなんだ
5:53 AM
リポジトリにもbugsにも supportedFlashModes で検索しても何も出ないし
5:53 AM
なんらかのバグがあって同じような問題が他のパッケージでも生じてそっちでレポートされたんだろうか??
Avatar
Kishikawa Katsumi 10/28/2020 5:54 AM
全然わからない。当時も全然わからなかった。(もう必要ないけど)対策としては#if !targetEnvironment(simulator)で囲う
Avatar
実機とシミュレータでSDK違うのでそもそも定義されてない関数があった気が。Metalは昔そういうのがありました。(今はシミュレータ対応しているのであるけど) (edited)
8:20 AM
おもちさんが調べてた
Avatar
↑で見てるファイルであってるよねえ
Avatar
ですです、でもh側で定義されてるけどswiftで読めないという結論だったかはちょっと覚えてない…Metalの時はそもそもhにもなかった気がする
Avatar
hに無いものとかをoverlayでswift向けに足す事はあっても
8:23 AM
hにあるものはclang importerが一通り引っ張ってくるはず
8:23 AM
hにあるものをoverlayで潰す パターンがあるんかな
Avatar
Kishikawa Katsumi 10/28/2020 10:25 AM
__supportedFlashModes だったらいける。
10:25 AM
なんかけっこう前から同じ問題があってリグレッションらしい。 https://developer.apple.com/forums/thread/86810 なんでかは結局わからない。
Avatar
おお。
Avatar
Kishikawa Katsumi 10/28/2020 10:27 AM
アンダースコアを2つつけて元のメンバを隠す?(Refined For Swiftかな?)みたいなことがこの辺は行われてるっぽい。
Avatar
オーバレイが気になるけどどこにあるんだ・・・?
Avatar
AVFoundationはAVFoundation.swiftmodule が提供されてるから.swiftinterfaceに書かれてるはず。 デバイス向けとシミュレータ向けを比較するなら $ export DEVELOPER_DIR=/Applications/Xcode_12.app; diff $(xcrun --show-sdk-path -sdk iphoneos)/usr/lib/swift/AVFoundation.swiftmodule/arm64.swiftinterface $(xcrun --show-sdk-path -sdk iphonesimulator)/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface って感じ? (edited)
Avatar
ダウンロードして確認してみたら、Xcode 12.0.1にはシミュレータ 向けのAVFoundation.swiftmoduleが入ってないな。 $ export DEVELOPER_DIR=/Applications/Xcode_12.0.1.app; diff -u $(xcrun --show-sdk-path -sdk iphoneos)/usr/lib/swift/AVFoundation.swiftmodule/arm64.swiftinterface $(xcrun --show-sdk-path -sdk iphonesimulator)/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface diff: /Applications/Xcode_12.0.1.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator14.0.sdk/usr/lib/swift/AVFoundation.swiftmodule/x86_64.swiftinterface: No such file or directory
Avatar
マジか
Avatar
Simulatorは飾り
Avatar
Xcode12の新しいタブの動き、だいぶ慣れてきて意味はわかったけど個人的には使いにくい
11:35 AM
今までは、今関心のある2つとか3つのファイルをタブで開いて、タブの移動のショートカットで切り替えながらやっていたんだけど、
11:35 AM
新しい仕様だと、定義とかジャンプするたびにどんどんタブが開いていって、
11:35 AM
「さっき作業してたファイルに戻る」ことができなくなっちゃった
11:36 AM
仕方ないので Cmd + Shift + O のショートカットを多用しているけど、ストローク量が増えてテンポが落ちた。
11:36 AM
なんか見逃してるコツとかあるだろうか
Avatar
Go Back/Forwardで戻れません?
Avatar
それだと、2つの間の関係が
11:40 AM
特にForwardしないといけないときに
11:40 AM
他のとこに寄り道すると戻れなくなる
Avatar
それはそうですねぇ
Avatar
以前はそれが前と後ろじゃなくて左と右だったんだよな、脳内感覚で (edited)
11:41 AM
たまにどっちかわからなくなったら連打してた
11:42 AM
最近は戻る連打しても全然目的の物が出てこないみたいなアホな操作をたまにしてる
Avatar
www
11:42 AM
それはもうCmd + Shift + Oで戻ったほうが速そう (edited)
Avatar
そうなる。
Avatar
Kishikawa Katsumi 10/30/2020 11:45 AM
タブを左右に移動するショートカットはどうですか?
Avatar
Cmd + {Cmd + } は使ってるんですけど
Avatar
Kishikawa Katsumi 10/30/2020 11:45 AM
私はキーボードはあまり使わないので代わりに適当に3本指スワイプで戻る進むですが。
Avatar
タブが勝手に開いていく?ので、一瞬でものすごい量になって
11:46 AM
戻れなくなる。
Avatar
Kishikawa Katsumi 10/30/2020 11:46 AM
左右に移動している間に増えます?
Avatar
以前は Cmd + Ctrl + Click で定義ジャンプしてもタブは開かなくて、今のタブのなかで遷移したんですけど
Avatar
Kishikawa Katsumi 10/30/2020 11:47 AM
ああ、そういうことですね。
Avatar
あ、わかった、もう一つあって
11:47 AM
定義ジャンプした時に開くタブが
11:47 AM
既に開いたタブなら、そのタブを選択する操作になるんですよね
11:48 AM
僕は定義ジャンプをかなり多用するので
11:48 AM
常にタブをジャンプしまくっている状態で
11:48 AM
左右の位置関係がシャッフルされててわけわからない
Avatar
Kishikawa Katsumi 10/30/2020 11:49 AM
タブは最初タイトルがイタリックの状態になってて、それを確定する(タイトルがRegularになる)までは一時的タブ、みたいな扱いなので次を開くときはそれが上書きする形で開く、と思うんですけどそうなってないすか。 (edited)
Avatar
あ〜なるほど、そうなっている。
11:50 AM
ジャンプ先で編集して保存しちゃうとだんだんアクティブなタブが増えていくのか。
Avatar
Kishikawa Katsumi 10/30/2020 11:51 AM
あー、その操作で確定になるのか。
Avatar
保存(Cmd+S)しなくても、なんかちょっとエディットするだけで
11:51 AM
イタリックがレギュラーになりますね
Avatar
Kishikawa Katsumi 10/30/2020 11:51 AM
確定になるのはタブかナビゲーションのところをもう一度ダメおしで選択した場合だけと思ってました。
Avatar
VSCodeはそれな気がする?
Avatar
Kishikawa Katsumi 10/30/2020 11:52 AM
それでいつの間にかタブが増えるんすね
Avatar
逆にCmd+SしてレギュラーにならないのがVSCodeの動きと一致しなくて慣れない
11:52 AM
そうそう
Avatar
なんかどっちを使う時もいつも混乱してる。 (edited)
Avatar
Kishikawa Katsumi 10/30/2020 11:52 AM
VScodeから持ってくるならVScodeに合わせてほしいな
Avatar
あーだから、Cmd+SするときにCmd+Wして
11:53 AM
ていうか戻る代わりに閉じれば良いのか?
11:53 AM
そんな気がしてきたぞ
11:53 AM
戻りるつもりで閉じすぎると貫通してプロジェクト閉じちゃうんかな (edited)
Avatar
閉じちゃう
11:54 AM
閉じて開くとSwiftPMのぐるぐるが走る…
🌀 1
Avatar
それ・・・
Avatar
Cmd+Shift+W だっけ
5:22 PM
多用してる
Avatar
cmd alt wなら自分以外閉じる
5:23 PM
shiftはなんだっけ
Avatar
軽率に試したらウィンドウ消えたw
Avatar
Editorを閉じるってやつ
5:23 PM
違ったかも
Avatar
観測した挙動はそうでした
Avatar
Ctrl+Cmd+W?
Avatar
あ、Shiftがウィンドウごと消すやつで、Ctrlがタブごとに消せるのか
Avatar
vimでいうところのbufferを削除みたいな感じ
Avatar
むむ?
5:25 PM
ただのcmd wとは違う?
Avatar
押しすぎてもウィンドウ消えない
Avatar
cmd+wはWindowsが消滅する
5:26 PM
それ
5:26 PM
連打可能
Avatar
なるほど!!!
Avatar
求めてたやつっぽい!
Avatar
Windowsじゃない、ウィンドウ
Avatar
使ってみます!
Avatar
さいきんSwiftが動くようになったのにもう消滅するのかWindows…
Avatar
cmd+wは罪なショートカットだ...
Avatar
しかも連打可能 😋
Avatar
xcodebuildでSwiftPMのパッケージをビルドする時って、ターゲット指定って出来ないのかな。テストターゲットまでビルドするから-configuration releaseにすると@testable import …で失敗してしまう…
Avatar
Kishikawa Katsumi 11/20/2020 2:32 PM
ちょっと戯れにトラブルシューティングしてたら https://twitter.com/k_katsumi/status/1329790575432720389 xcodebuildのターゲット指定のデフォルトはもうAppleシリコン前提になってるっぽい。潔いというかなんというか。 せめてホストを見るとかしてくれても良さそうだけど。
@the_uhooi @ch3cooh destinationの指定がない場合、xcodebuildは-target arm64-apple-ios13.0-simulatorというTripletを渡しています。たぶんこれはXcode 12.2からかな?Appleシリコンが出たからだと思う(それまではarm64のシミュレータなどなかった)。 指定すると-target x86_64-apple-ios13.0-simulatorが渡ります。
Avatar
simulator?
Avatar
Kishikawa Katsumi 11/22/2020 2:22 PM
シミュレータです。インテルMacでデスティネーションを指定しないとデフォルトでARMアーキテクチャのビルドになって、だいたいリンクエラーになる、みたいな。
Avatar
omochimetaru 2/2/2021 3:41 AM
XcodeでPackage.swiftを開いてビルドしようとした時、 Xcode内部のswiftpmに対して PKG_CONFIG_PATH を渡す方法が無いっぽいんですが、 なにか方法を知ってる人居ますか? Run Schemeのenvironment variables設定は実行時の設定で、SwiftPMのresolveフェーズには影響がないみたい
Avatar
自分で書いてもタイトルが意味不明なのですが macOS Big Sur (11.1) Xcode 12.3 iOS 14.2 (iPhone 12) Metal を利用した iOS アプリ Xcode のデバッガがアタッチされた状態で実行 で iOS アプリの画面の自動回転が機能しない。 解決法 Scheme の run > option > GPU Frame Capture を Automatically Enabled から Metal に変更する。 おわり USB ケーブルをつないで iOS 実機で Metal を利用したアプリのデバッグ実行を Xcode から行っていると当該現象が発…
4:20 AM
引っかかる人そうそう居ないと思いますが念の為…
Avatar
Avatar
omochimetaru
XcodeでPackage.swiftを開いてビルドしようとした時、 Xcode内部のswiftpmに対して PKG_CONFIG_PATH を渡す方法が無いっぽいんですが、 なにか方法を知ってる人居ますか? Run Schemeのenvironment variables設定は実行時の設定で、SwiftPMのresolveフェーズには影響がないみたい
なんか厳しめだった記憶ある...
4:23 AM
package.swift が無理を承知で能動的環境を取りにいかないとダメみたいな感じを持ってる
Avatar
Avatar
niw
なんか厳しめだった記憶ある...
omochimetaru 2/4/2021 4:56 AM
そうですよねー
4:56 AM
Cライブラリを使うのにpkgConfig経由が一番シンプルで楽なんですが
4:57 AM
usr/localにモノ置くとhomebrewが文句言うので困る
Avatar
Kishikawa Katsumi 2/4/2021 5:00 AM
Homebrewが入れるもののインストール先を変えるのが良さそうかなあ。 (edited)
Avatar
Kishikawa Katsumi 2/4/2021 5:07 AM
HOMEBREW_PREFIXとかで違うところに入るんじゃなかったかな。
Avatar
omochimetaru 2/4/2021 5:08 AM
あー
5:08 AM
逆転の発想ですね (edited)
5:08 AM
でもそれはそれでhomebrewで入れたものがpkg-configで見つからなくなるのでは・・・
Avatar
Kishikawa Katsumi 2/4/2021 5:17 AM
どうなんすかね。*.pc の記述がちゃんと変わってくれるんじゃないかな。.pcの挙動はあまり知らないんですけどconfigure とかのタイミングでできるんですよね?
Avatar
omochimetaru 2/4/2021 5:18 AM
pcの内容は問題ないんですよ、pc自体のサーチが問題で
5:18 AM
マニュアルによると、pkg-configコマンドがpcを探す場所が /usr/lib/pkgconfig, /usr/share/pkgconfig, /usr/local/lib/pkgconfig and /usr/local/share/pkgconfig for these files.
5:18 AM
で、それにくわえて、 It will additionally look in the colon-separated (on Windows, semicolon-separated) list of directories specified by the PKG_CONFIG_PATH environment vari- able.
5:18 AM
ということなんですよ
5:19 AM
しかし PKG_CONFIG_PATHを設定できないので
5:19 AM
この決め打ちの /usr/lib/usr/local/lib の2つしか
5:19 AM
mac環境だと使えないんです
5:19 AM
homebrewだと /usr/local/lib/pkgconfig/hoge.pc とかが置かれる。
Avatar
Kishikawa Katsumi 2/4/2021 5:21 AM
本当だ。/usr/local/Cellar/以下が実体だけどシンボリックリンクがそこに置かれるのか。で、そこしか探されないと。
Avatar
omochimetaru 2/4/2021 5:21 AM
そうですそうです。
Avatar
Kishikawa Katsumi 2/4/2021 5:22 AM
あ、そういう挙動ならHOMEBREW_PREFIXは/usr/local/Cellar/なんで
5:22 AM
Homebrewが実体のインストールはどこでも/usr/local/lib/pkgconfig/hoge.pcにリンクを作るんじゃないかな。
Avatar
omochimetaru 2/4/2021 5:23 AM
え、それ意味あります?
5:23 AM
てっきり、 /usr/local/include/usr/local/lib を汚染しないための機能だと思っていた
5:24 AM
結局最終的に /usr/local 系にエントリポイントを置く挙動が変わらない説ですよね
5:24 AM
意味というのはHOMEBREW_PREFIXとしての意味があるのかという話で、 挙動としてはたしかに今回の問題は解決する?どうなんだろう?
5:24 AM
困りごととしては
5:24 AM
$ brew doctor したときに、 /usr/local/lib/pkgconfig/xx.pc に対して、
5:25 AM
homebrew由来じゃないものがあることを警告されるという件なんですが
5:25 AM
/usr/local/lib/libXXX.dylib も同様
Avatar
Kishikawa Katsumi 2/4/2021 5:25 AM
なるほど。解決しなさそうですね。
Avatar
omochimetaru 2/4/2021 5:25 AM
最終的に /usr/local に設置する挙動が変わらないならそのdoctorの動きもかわらなさそうだ (edited)
Avatar
Kishikawa Katsumi 2/4/2021 5:25 AM
結局そこに入るのだとしたら。
Avatar
omochimetaru 2/4/2021 5:26 AM
ちなみに今のとりあえずの解決策としては
Avatar
Kishikawa Katsumi 2/4/2021 5:26 AM
まあbrew doctorの警告だけが気になってるならそれは気にしないのがいいと思う。
Avatar
omochimetaru 2/4/2021 5:26 AM
/usr/local/pkgconfig/xx.pc が シンボリックリンクの場合はなぜか文句を言われなかったので
5:27 AM
/opt にマニュアルインストールした後、 /opt/lib/pkgconfig/xx.pc に対して /usr/local/pkgconfig からリンクを張ってみました
5:27 AM
このリンクなら文句を言わないというのも謎で、 /usr/lib/libXXX.dylib 系についてはリンクでも怒られる・・・ いやわかった、2段階だったから、リンクはミッシングリンクのときだけだ、 1段階目は実態ファイルを怒ってた (edited)
Avatar
Avatar
Kishikawa Katsumi
まあbrew doctorの警告だけが気になってるならそれは気にしないのがいいと思う。
omochimetaru 2/4/2021 5:28 AM
う〜ん・・・たしかに・・・?homebrewはdoctorを綺麗にするのがベストプラクティスだと思っていたが・・・
Avatar
Kishikawa Katsumi 2/4/2021 5:37 AM
私はdoctorとかトラブルでもなければ呼ばないっすね。
Avatar
omochimetaru 2/4/2021 5:37 AM
なるほど
5:43 AM
話してて状況から思い出してわかってきたけど
5:43 AM
homebrew doctorが管理外ファイルに不満を言う件は
5:43 AM
実体ファイルの場合だけで、シンボリックリンクの場合はリンク先にファイルがあれば見逃されるから (edited)
5:44 AM
別の場所にマニュアルインストールして、リンクだけ刺してシステムに登録するのが、ベストに思えてきた
Avatar
homebrew 「/usr/local はうちのもんや、てぇだすなや」 (edited)
5:53 AM
Xcode 「環境変数?なにそれおいしいの?」
5:53 AM
大抵こんな感じでしんどい
Avatar
omochimetaru 2/4/2021 6:27 AM
そんなかんじ
Avatar
norio_nomura 2/4/2021 11:38 PM
マニュアルインストールしているもの用にTapを作って、Homebrewにインストールさせるとか。
Avatar
omochimetaru 2/5/2021 4:26 AM
あーそれはめっちゃ正しそう
5:48 AM
When debugging C++ programs using libc++, LLDB now offers improved expression evaluation support for STL containers and algorithms. (19866497) You can call member functions of STL containers, even if they are never called in the target program.
(edited)
5:49 AM
これ結構不便だったので助かる&すごい
5:49 AM
テンプレートクラスはビルド時にインスタンシエートされたシンボルしかデバッガで叩けなかった
Avatar
すごい。デバッガがclangを積んでテンプレート評価する感じかな
Avatar
omochimetaru 4/21/2021 5:51 AM
だと思う。まあデバッガからREPLができるのでもともと仕組みはそうだと思うけど
5:51 AM
以前はそこでテンプレート評価はできてなさそうだった
Avatar
LLVMのSmallVectorとかは無理なのかな
Avatar
omochimetaru 4/21/2021 5:53 AM
stdだけなんかな?
Avatar
この書き方だとSTLだけなのかなぁ。試してみよ
Avatar
omochimetaru 4/21/2021 5:53 AM
ソース位置が必要だしそんな気もするね
5:54 AM
clang moduleはAST持ってるんだろうか
Avatar
PCHには.clangastっていうセクションがあったはず
Avatar
omochimetaru 4/21/2021 5:55 AM
ほお〜
Avatar
HomeWidgetのVersionとBuild番号を親アプリのVersionとBuild番号を参照して自動入力する方法わかりますか?
5:01 AM
親アプリをバージョンアップするたびに、HomeWidgetのバージョンも毎回あわせるのが面倒。
Avatar
yutailang0119 4/25/2021 5:08 AM
hostアプリ以外のバージョンとかって使われるんだっけ、別に上げなくてもApp Store Connectへのアップロードは弾かれないと思ってた それはそれとして、うちは一応合わせるために、バージョンはagvtoolで操作するようにしてます
Avatar
ありがとうございます。こういうのがあるんですね。 自分は最近このプロジェクトをFlutterで作るように変更したんですが、親アプリのバージョンはFlutterから更新できるんですが、HomeWidgetのバージョンが更新できなかったので、Build時に親のバージョンをHomeWidgetにわたせたらいいなと思った次第です。 親の方はバージョンの枠に$(FLUTTER_BUILD_NAME)といれてやれば、反映されるのですが、HomeWidgetのほうは反映されず。もともとXcodeでSwiftで作ってる時も不便だったので、何か方法あればと思いました。 HomeWidgetのバージョンが違うとAppStoreConnectでダメ出し出た記憶があり、それ以降バージョンは合わせて申請しています。
5:15 AM
単純に親のバージョンを入れてくれる上記のような定数があれば、それが一番簡単なんですが。。
Avatar
警告だけとか、実は問題ないのかな。。。? バージョン違いでよいかは再度調べてみます。 (edited)
Avatar
警告は出ますね。
Avatar
yutailang0119 4/25/2021 8:07 AM
hostアプリを参照することに拘るなら、ないが回答だと思います よくやるのはplistに環境変数入れる方法だけど、hostアプリとextensionで跨ぐことはできないので、この方法は取れないはず Flutterのことを詳しくないけど、Flutter側のプロジェクトになんらかの定数が入ってるなら、CIなどのワークフロー作って、agvtoolで一括で変更を流すとかをやるといいんじゃないでしょうか
Avatar
yutailang0119 4/25/2021 8:16 AM
fastlaneのincrement_version_numberも中でagvtool使ってる気がしてきた
Avatar
なるほどです。ありがとうございます。 出来そうで、出来ない事も、ありますね。
Avatar
12.5 でスワイプでのファイル履歴移動が1個ずれる?っぽくてなかなか辛い😢
Avatar
omochimetaru 5/6/2021 4:31 AM
Xcode12.5でSwiftPMのfetchやらupdateがかなり早くなって良くなった
4:32 AM
ライブラリパッケージをmainブランチにpushして、アプリプロジェクト側でupdateした時、すぐにそれだけ落ちてくる
Avatar
今までって全部fetchし直してる感じでしたっけ
Avatar
omochimetaru 5/6/2021 4:33 AM
そのように見えてた
Avatar
いいね
Avatar
omochimetaru 5/6/2021 4:33 AM
多分キャッシュ有効性問い合わせだけするようになったっぽい
4:33 AM
iOSでちょっと入れるだけなら特にこまんなかったけど
4:34 AM
サーバサイドでVaporとかやると依存の依存とかで軽く20パッケージ行くから
4:34 AM
なかなかだるかった
Avatar
いうてアプリでも年月経てば依存20個とかあったりするから
4:39 AM
その変更は嬉しいね
Avatar
omochimetaru 5/6/2021 4:39 AM
それはそうだね。まあ、アプリでガッツリ使ってる人がまだ少なそうだから、そこまで育ってるケースはかなり少なそうだけど、そろそろ来そうだね。
Avatar
Carthageも難易度上がっちゃってるし、主要3rd partyのバイナリ配布周りが整備されたら一気に流れそう
Avatar
omochimetaru 5/6/2021 5:13 AM
Xcode12.5になって、SwiftPM依存パッケージのローカルエディットモードが壊れてる気がする・・・
5:13 AM
エディット開始はできるけど、終了しようとすると、
Avatar
3歩進んで2歩下がったw
Avatar
omochimetaru 5/6/2021 5:13 AM
なぜかエディットしようとしたディレクトリ自体がOS側で削除されて、Xcodeには赤いエラーアイコンだけ残るぞ。
5:14 AM
過去にどっかのベータでこのやばいバグみた記憶あるけど
5:14 AM
12.5で正規出荷されとるが
5:14 AM
しかも赤くなったエラーエントリの削除ができない・・・
Avatar
だいぶ壊れてますね
Avatar
omochimetaru 5/6/2021 5:17 AM
開き直すと消えてくれるけど、ローカルエディット対象がリアル削除される挙動はありえんすぎる
Avatar
Kishikawa Katsumi 5/27/2021 4:54 AM
なんかXcode 12.5から?リファクタリングのリネームで関係ないものが変更されることが起こるようになった気がする。 変数名を変更すると別の関数の偶然同じ名前の引数ラベルが変わるとか。
4:54 AM
再現できるものが作れたら作る。
Avatar
JetBrains の IDE とかそういうイメージがあります。コメントとかも変えてくれて助かる一方で関係ないのも巻き込まれがちな怖さもある。( 10 年くらい前に使ってた頃の) Eclipse は構文上同じものを変えるだけだったので安心感はありました。その代わり変数名とか個別に変えないといけない。 Xcode はそれらの中間の感覚だったけど、より派手にリネームするようになった?
Avatar
関係ない同名の引数名がリネームされる現象は12.5より前でも発生してた気がします。 (edited)
Avatar
Kishikawa Katsumi 5/27/2021 5:15 AM
最近のXcodeはStoryboardの中もきっちり変えてくれて完全に信頼していたのに。。。
Avatar
なにも信じられない、信じられるのは printf と grep だけ、の世界
😅 1
Avatar
Kishikawa Katsumi 6/3/2021 7:48 AM
import の補完で先に IMP が出てくるの地味にストレスを感じている
Avatar
omochimetaru 6/3/2021 7:49 AM
僕も actionHogehoge... の先に ACTION が出て困ってる
😢 1
7:49 AM
漢字変換みたいに学習して欲しいな。
Avatar
yutailang0119 6/3/2021 7:49 AM
めっちゃわかる… > IMP
😅 1
Avatar
omochimetaru 6/4/2021 10:46 AM
SwiftPMのresourcesでユニットテストの入力持とうとしたんだけど
10:46 AM
I'm trying to use a resource file in unit tests and access it with Bundle.path, but it returns nil. This call in MyProjectTests.swift returns nil: Bundle(for: type(of: self)).path(forResource: "
10:46 AM
$ swift test は動くけど、 SwiftPM for Xcode だとresources directiveが無視されて全く動かないw
Avatar
すごい大変なワークアラウンドを最近した記憶が...
3:45 PM
CIとかいろいろぶっ壊れて大変だった記憶が...
3:46 PM
なんだったか、Xcode 12.5で壊れたんですよ bundle周り
Avatar
omochimetaru 6/4/2021 11:50 PM
ww
Avatar
ちなみに先週くらい share extension が動いていなかったのはそれが原因
Avatar
omochimetaru 6/5/2021 12:35 AM
え、ツイッターの?
Avatar
そう
Avatar
あれそうだったんですね
Avatar
クラッシュしてた
12:36 AM
なぜならbundleがないからw
Avatar
omochimetaru 6/5/2021 12:36 AM
ワオ
Avatar
SwiftPMの作法と、Xcodeの扱いと、App Storeの制約みたいなのが全部違うというかなんというか...
12:37 AM
厳しい感じ
12:37 AM
複雑すぎて詳細を覚えてないんだけど
12:38 AM
bundleのフォーマットに何種類かあるっぽい?
Avatar
omochimetaru 6/5/2021 2:08 AM
WWDC初日にXcodeBetaって出るんでしたっけ
Avatar
そうだったかな
2:08 AM
月曜日の午後はダウンロード
Avatar
例年はそうですね。
Avatar
omochimetaru 6/5/2021 2:09 AM
なるほど。
2:10 AM
SE-0295を新規案件で使いたくって、
2:11 AM
Swift5.5 の乗った Xcode を待つか、 SE-0295準拠なコード生成を自前で実装するか迷ってる。
2:13 AM
iOSアプリだとストア申請がXcode Betaじゃできないけど、 今回サーバサイドだからLinuxは5.5 Docker Imageがあるっぽくて、 Xcodeは開発環境で動けばいいので・・・
Avatar
omochimetaru 6/5/2021 2:24 AM
あーでもiOSで使いたいことがあるかもしれないしもうやっちゃおうな
Avatar
omochimetaru 6/7/2021 2:55 PM
switch-caseのenum caseの自動生成、RefactorからやるとABC順?で、 エラー出してFix-itからやるとenum caseの定義順になるね (edited)
Avatar
Kishikawa Katsumi 6/7/2021 2:55 PM
そうなの!?
Avatar
omochimetaru 6/7/2021 2:56 PM
ABC順は、 case まで書いて ESC 押して補完に出てくる順番でもある。
2:57 PM
enum-caseの定義順にswitch-caseを書きたい時は補完やrefactorを使わずに一度コンパイルエラーにしてfix-itすると良い。
Avatar
Kishikawa Katsumi 6/7/2021 2:57 PM
私は
一度コンパイルエラーにしてfix-it
こっちしか使ってなかった。
👍 1
Avatar
バッドノウハウ...
Avatar
Kishikawa Katsumi 6/7/2021 2:58 PM
XcodeはSwiftのせいだと思うけどfix-itがけっこうよくできてるのでfix-itを意図して呼び出すこと私はよくある。
2:58 PM
@escaping の位置とかいつまで経っても覚えられないけど適当な位置に書いたら直してくれる。
2:59 PM
なんなら書かなくても呼び出したらFixitが入れてくれる。
Avatar
omochimetaru 6/7/2021 3:01 PM
昔はrefactorがしょぼくてfix-itしかなかったのもあって、僕も結構そっちが手に馴染んでいる
Avatar
皆様 Xcode13の vim モード搭載はそうでもない感じですかー?
Avatar
vimににたなにかであってvimではないかなという印象
Avatar
まーたしかに。
Avatar
キーバインディングが似てるいいかどうかは人によると思う
1:06 AM
vimは環境だから...
Avatar
Syntax highlightとCode completionのリリースノート読みました。とても良くなってそうなので触るの楽しみです
Avatar
大きなアーキテクチャの変化があるので、バグもあると思います。触ってリポートしていただけると🙇‍♂️
👍 1
Avatar
ctrl-spaceが奪われて日本語が入力できないってのはレポートしたほうがいいですかね
2:10 AM
たぶん、これずっと前からなんですけど。
Avatar
おー僕opt+spaceなので、困ったことなかったです.
Avatar
macosのデフォルトはctrl+spaceで、Xcodeの補完のデフォルトがctrl+space (edited)
2:13 AM
普通のユーザーがなにもしないと衝突するんですよね
Avatar
omochimetaru 6/8/2021 2:14 AM
「かな」「英数」最高!
Avatar
んー、日本語を入力する人は日本語のキーボードを使うからこれは問題ではない、というのは
2:15 AM
ちょっと、どうかな・・・
Avatar
omochimetaru 6/8/2021 2:15 AM
英数キーボードで日本語も打つ人ってほとんどカスタマイズしてる感がある
Avatar
少なくともデフォルトの動作からは避けるべきだと思います
Avatar
少数派と切り捨てるのは容易い。
2:16 AM
そんなこといったら日本語が少数派。
2:16 AM
対応必要なし。
Avatar
ところでおもちくんの「最高!」は別に問題が無いという話ではなくある種のミームなので他意は無さそう
👍 1
Avatar
ってことになっちゃうからなあ...
2:17 AM
わかってますw
Avatar
これからデフォルトを変えるのはハードル高そうですけど、レポートしないことには何も始まらないので、是非レポートして下さい。 (edited)
Avatar
たしか、Spotlightがコンフリクトしてて、macOSの日本語入力のほうが譲った過去があるんですよ
2:18 AM
cmd+space → ctrl+space
Avatar
omochimetaru 6/8/2021 2:18 AM
そうそう。
Avatar
そしたらXcodeと被った。
Avatar
omochimetaru 6/8/2021 2:18 AM
Spotlightがランチャーになったとき。
Avatar
ショートカットの仁義なき戦いだ…
Avatar
omochimetaru 6/8/2021 2:20 AM
悩ましいよな〜 特A級の打ちやすいショートカットをアプリ跨いで何に割り当てるか問題
👉 1
2:21 AM
少なくともそれぞれのアプリやOSのデフォルト設定同士は衝突してないほうが望ましいのは間違いないと思うけど。
Avatar
FB9131987
👍 1
2:22 AM
Xcodeが避ければいい
2:22 AM
Spotlightは過去たしか日本語とかを入れるとCtrl+Space/Cmd+Spaceを自動でデフォルトを入れ替えてたはず (edited)
Avatar
omochimetaru 6/8/2021 2:22 AM
まあXcodeより文字入力のほうが一般的な場面か。
2:22 AM
文字入力はOS全体の話になるし。
Avatar
Xcodeはシステムではないからなあ、macOSよりは弱い立場。
2:23 AM
macOSを尊重すべきだし、できるんはずだよなあ、って言う感じ。
Avatar
omochimetaru 6/8/2021 2:23 AM
SpotlightはOSレベルだったから特別か〜
Avatar
だよなあ...
2:24 AM
まあでも結局わかってるから
Avatar
たしか、Spotlightがコンフリクトしてて、macOSの日本語入力のほうが譲った過去があるんですよ cmd+space → ctrl+space
これまでずっとSpotlightのショートカット殺してきたから気付かなかった・・・。
Avatar
keymap変えて自分で回避してるけど、xcodeのユーザーがそう言う人を対象としているのなら、それでいいと思う。
Avatar
omochimetaru 6/8/2021 2:38 AM
😇
😇 1
Avatar
半日...
2:38 AM
カリフォルニアは遠いからなあ。
Avatar
omochimetaru 6/8/2021 2:39 AM
引っ越し直後でまだ光回線が来て無くてモバイルワイファイなんですよね。
Avatar
ギガがなくなっちゃうっていうやつですか...!
Avatar
omochimetaru 6/8/2021 2:40 AM
そうですよ・・・100GBの契約が・・・
Avatar
おもちさん、それコワーキングスペース借りた方がいいよ
Avatar
すごい高価なXcodeだ...
Avatar
omochimetaru 6/8/2021 2:40 AM
iMac Pro持って外出たくないンゴ
Avatar
iMac Pro笑
Avatar
Xcode 12→13はそういえば史上もっと簡単な以降だったかも
Avatar
xipをiPadにいれて持って帰るんや
Avatar
直したファイルは2つだけ
Avatar
確かにどっかでDLして持ち帰る以外にまともにDLできなさそう
Avatar
omochimetaru 6/8/2021 2:42 AM
ダウンロードテイクアウト、一理あるな。
Avatar
オフィスでやればいいのでは?
Avatar
ダウンロードだけならスタバとかでもよさそう
Avatar
それ誰かがダウンロードしてUSBメモリ郵送とかのほうが早いとかありうる?
Avatar
スタバ回線はうんちだよ
💩 1
😥 1
☕ 1
Avatar
ネカフェ行ってUSBメモリにxip入れて帰ってくるとか
Avatar
自分は回線微妙に遅いながらもDLしたらパッケージ壊れてて、DLしなおしだった
Avatar
omochimetaru 6/8/2021 2:45 AM
ネカフェなるほど。オフィスは多分他の選択肢より物理的に遠いw
Avatar
オフィスの引越しに合わせて近くに引越したのかと思ってた。
Avatar
omochimetaru 6/8/2021 2:47 AM
妻のオフィスに寄せました。
2:49 AM
Fixed @IBDesignable view support for multi-platform targets. (65449051) (FB7964472)
これAppleTVビルドが暴発するやつだろうか
Avatar
Avatar
rintaro
大きなアーキテクチャの変化があるので、バグもあると思います。触ってリポートしていただけると🙇‍♂️
omochimetaru 6/8/2021 2:54 AM
大きなアーキテクチャの変化があるので
楽しみ。Xcode11→12の時に結構進化があった気がするけど、更に改善してしまうのか。
Avatar
コード補完が今までと全然違いますね
3:39 AM
フィールドの先のメソッドまで推論してる
Avatar
omochimetaru 6/8/2021 3:43 AM
ほおおお
3:43 AM
候補確定するといっぺんにフィールドごと出てくるの? (edited)
Avatar
view.animateっていれると色々出てくるけど、これはあんまり上手く行ってなさそうだな
Avatar
ほんまや
Avatar
実戦でつかってみるかー。
Avatar
privateなメソッドまで補完されてる気がする
😎 1
Avatar
リリースノート的には
Code completion also searches across properties to offer chained completions like layer.cornerRadius, when completing cornerRadius in a view.
ですね。絞り込みで補完候補が無くなってしまったときに、検索範囲を広げて探してくる感じです
Avatar
omochimetaru 6/8/2021 4:16 AM
なるほどなるほど
Avatar
  • enumのAssoc Valueの補完がでない気がすると思ったら6文字ぐらい打ったら出た
  • Jump definitionでクラッシュした
となってごちゃごちゃやってる
Avatar
Miwa / Ensan 6/8/2021 7:10 AM
コード補完の選択肢を選ぶとき、トラックパッドでのスクロールへの反応がかなり悪くなっている気がするのですが、同様の症状の方いませんか? (edited)
Avatar
マジックマウスだとスクロールしなかったですね
Avatar
Miwa / Ensan 6/8/2021 8:34 AM
かなり強くスクロールすると一応動くんですが、ちょっと困る
Avatar
Kishikawa Katsumi 6/8/2021 11:47 AM
なんか自動インポート補完がつかえるようになったらしい?
11:53 AM
A love letter to Xcode 13, in 5 GIFs. Part one: it will automatically import frameworks as needed. #WWDC21 https://t.co/0UN2ZoPTkN
Retweets
306
Likes
1303
Avatar
Androidみたいだ。ありがてぇ
Avatar
そうそうこれあった。 vscでみた
Avatar
あと可能なら、使ってないimportあれば自動的に削除されて欲しいけど、それはやってくれるのか気になるな Androidほどパッケージ細かくいれることないから、そう困ることはないだろうが (edited)
Avatar
omochimetaru 6/8/2021 12:13 PM
不要import削除たしかに欲しいな。
Avatar
Avatar
omochimetaru
enum-caseの定義順にswitch-caseを書きたい時は補完やrefactorを使わずに一度コンパイルエラーにしてfix-itすると良い。
このFix-itハックも必要なくなったっぽい https://twitter.com/twostraws/status/1402139628254138368?s=20
Part four: it autocompletes all the cases for enums when you use switch. #WWDC21 https://t.co/V7ISrkRQN4
Likes
536
Avatar
omochimetaru 6/8/2021 12:17 PM
おお!話したばかりのやつw
Avatar
補完いい感じにやってくれるのいいな
Avatar
Kishikawa Katsumi 6/8/2021 12:58 PM
そういえば標準のフォーマッタが入ったりはしてないのかな?
Avatar
swiftlint処分できるのかな?
Avatar
うーん、Xcode 13のビルドすごい遅くなった気がする...
4:07 AM
Swiftが遅くなったのかな...
4:07 AM
15分とか遅すぎる
Avatar
Avatar
niw
うーん、Xcode 13のビルドすごい遅くなった気がする...
Debug でも Release でも遅いです? Debug だけならインクリメンタルビルドの仕組みがだいぶ変わったので、その辺かも。 https://forums.swift.org/t/optimizing-and-debugging-incremental-build-time-in-swift-5-5/49379
If your incremental (i.e. Debug) builds seem to be too slow, here some things to try (in no particular order): In Xcode, go into the Report Navigator and examine your build log to see what's going on and where the time might be going. See if some stage of your build is always replacing an imported file, In "Other Swift Flags", add -driv...
Avatar
Avatar
rintaro
Debug でも Release でも遅いです? Debug だけならインクリメンタルビルドの仕組みがだいぶ変わったので、その辺かも。 https://forums.swift.org/t/optimizing-and-debugging-incremental-build-time-in-swift-5-5/49379
もともと超巨大なコードベースってのもあるんだけど、一年くらい前は6分くらいだったんだよなあ。
8:35 PM
フルクリーンビルドの話なので、インクリメンタルは関係ないかな。
8:37 PM
現状体感遅いな、、って感じなので調査が必要な感じ
👍 1
Avatar
これもraderした方がいいのかなぁ
Avatar
rdar しすぎて困ることはないと思うけれど、よく読まずに「ログないとダメです」って言われるとやる気なくなるのも事実
Avatar
そうなんですよね〜ある程度トラックし続ける必要があってハードルが高い
Avatar
その表示の不具合、結構昔からありますよね
Avatar
iPhone 12 miniのやつ、Xcode 13 からさらにひどくなった気がするw
Avatar
omochimetaru 6/13/2021 6:44 AM
ウケる どういうバグなんだろう
Avatar
Simulator で iPhone 12 mini のノッチ位置とステータス表示が最初からずっとカチあってて、Xcode 13でなぜかステータス表示がさらに内側に行ってしまった
Avatar
omochimetaru 6/13/2021 6:45 AM
実機より内側に時刻があるな
Avatar
のっちのサイズがそもそも大きすぎる?
Avatar
omochimetaru 6/13/2021 6:46 AM
Avatar
ノッチのサイズはあってそうに見えるんですよね。safearea関係とか...?
Avatar
omochimetaru 6/13/2021 6:46 AM
実機と違うレイアウトロジックになっちゃってる
Avatar
スクショにはのっち出ないからなあ
Avatar
omochimetaru 6/13/2021 6:47 AM
時計の隣の矢印と、電波のアイコンにギリギリのとこまでノッチ
Avatar
Xcode 12.5
6:47 AM
これでも screen parameters are unexpected: MGScreenClass1125x2436x3x495 SCREEN_TYPE(1125,2436,3,495) っていう不吉なログが出てくる (edited)
Avatar
omochimetaru 6/13/2021 6:47 AM
w
Avatar
不吉w
Avatar
omochimetaru 6/13/2021 6:47 AM
シミュレーターの一生バグといえば
6:48 AM
日本語が中華フォントになるやつ
Avatar
それはバグというよりかは English only 環境だと中華フォント優先される話だったような (edited)
Avatar
言語一覧に日本語いれないとダメですね
6:48 AM
いれても中華ならバグ
Avatar
設定で言語設定を English, Japanese とかにしてやるとよいです
6:48 AM
物理端末でも起こる
Avatar
omochimetaru 6/13/2021 6:49 AM
IBDesignableとかPreview Canvasでもできる? (edited)
Avatar
たしか過去に日本語いれても日本語キーボードが出ないとかあったような... (edited)
6:49 AM
Preview Canvasの裏で動いてるSimulatorがそうなっていれば中華にはならない気がする
Avatar
omochimetaru 6/13/2021 6:50 AM
実行するやつとは別だから?言語設定に行けない
Avatar
どうだろう… ~/Library/Developer/Xcode/UserData/Previews/Simulator Devices 内の plist をモニョモニョしたらできそうな気はするけどもうちょっと素直な方法欲しいですね
Avatar
omochimetaru 6/13/2021 6:50 AM
なるほど。
Avatar
不吉なログと言えば、いつぞやからXcodeはやたらと内部のログを外に出してくるようになりましたよね。nw_protocol_get_quic_image_block_invokeとか。うまく消す方法がわからなくてずっと放置してます...実行時の引数になんか渡すと消せた気もするけど、
Avatar
omochimetaru 6/13/2021 6:53 AM
ググると消すための環境変数出てくるやつまあまあある
😩 1
Avatar
これは逆に Xcode と同じログを出したいやつだけど
Avatar
むしろそいつを=NOにしないといけないという罠...
6:55 AM
firebase sdkもばかすこログを吐くんで、通信ログは BagelというOSSを使って監視するようにしました。 (edited)
Avatar
環境変数記憶に新しい
Avatar
xcodebuildsettings.com ならぬ xcodeenvironmentvariables.com が求められますね
Avatar
Avatar
Miwa / Ensan
コード補完の選択肢を選ぶとき、トラックパッドでのスクロールへの反応がかなり悪くなっている気がするのですが、同様の症状の方いませんか? (edited)
これ、スクロールバーの上でしかスクロールできないということっぽいです
Avatar
Avatar
rinsuki
これ、スクロールバーの上でしかスクロールできないということっぽいです
あー、そういうことだったのかw
Avatar
Miwa / Ensan 6/16/2021 2:52 AM
あ、そこでやればスクロールできるのか
Avatar
あと慣性でスクロールが終わってない時は左側でもスクロールできるっぽい
Avatar
Miwa / Ensan 6/16/2021 2:52 AM
矢印キーでがんばって対処してたのでめちゃくちゃ助かります
Avatar
難易度高い
Avatar
Avatar
rinsuki
あと慣性でスクロールが終わってない時は左側でもスクロールできるっぽい
Miwa / Ensan 6/16/2021 2:53 AM
あと、めちゃくちゃ強くスクロールすると行けたりします
Avatar
https://stackoverflow.com/questions/64174989/widgetpreviewcontext-is-not-working-in-a-framework こちらと同じくWidget Extension以外のターゲットでWidgetPreviewContext使えない問題に遭遇しましたが、今のところまだ対策がないのでしょうか?
I made a widget using new and shiny WidgetKit. It looks good and working as expected. Then I put all its logic into separate framework to share constant values between extension and main app as wel...
Avatar
Network.frameworkがSwift5.5でビルドできなくて困っている
Avatar
原因はNetwork.frameworkがビルドされたコンパイラと、手元のコンパイラ(Xcode 13 beta 2) が違うことっぽい Failed to build module 'Network'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5 (swiftlang-1300.0.20.4 clang-1300.0.21.1)', while this compiler is 'Apple Swift version 5.5 (swiftlang-1300.0.20.104 clang-1300.0.21.1)'). Please select a toolchain which matches the SDK.
Avatar
Kishikawa Katsumi 7/2/2021 8:26 AM
無茶を言う感じだな。付属しているものが合ってなかったら合わせようがない気がするけど。。。 私も試してみよう。
Avatar
BitriseのStackはBeta 1で、BitriseでもだめだったのでXcode 13 betaだめかもしれない。RunやTestは通るけどArchiveが通らないので、特定のArchitectureなのか、最適化の問題なのか…
Avatar
Kishikawa Katsumi 7/2/2021 8:39 AM
確かNetwork.framework使ってるコードあったな〜、と思って開いたらNetworkじゃなくてNIOだったわ。。
Avatar
NIOがNetwork.framework使ってるんですよね で、grpc-swiftがNIOを使っていて、それのArchiveでこけるという感じです
Avatar
Kishikawa Katsumi 7/2/2021 8:58 AM
そうなんですね。単純にNIOやNetworkを使ってるだけだと特に問題なかったです。
8:58 AM
アーカイブできました。なかなか難しそう。
Avatar
なるほど、もう少し見てみます 🙏
Avatar
Kishikawa Katsumi 7/2/2021 9:06 AM
一応MacとiOSビルドでこないだ出たXcode beta2?で確認。
auyellow 1
Avatar
omochimetaru 7/5/2021 6:22 AM
XcodeでSwiftPMのパッケージを指定する機能、 Package.swift 相当の仕組みしか無くて、 Package.resolved 相当の仕組みが実装されていないように見えます。 これで困っているんですが、知ってました?
6:23 AM
どういう事が起きるかというと、バージョン範囲指定やブランチ指定が機能しなくなる。 開発時にチェックアウトしたライブラリバージョンがgitにコミットされないので、 リポジトリをチェックアウトしてビルドする環境で、依存ライブラリのバージョンが同一にならない。
Avatar
xcodeproj配下にPackage.resolved無かったでしたっけ
Avatar
Kishikawa Katsumi 7/5/2021 6:27 AM
XXX.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved ここに。
Avatar
omochimetaru 7/5/2021 6:37 AM
あ〜
6:37 AM
xcshareddata を ignore していたから git diff が出なかったのか。
6:38 AM
ありがとうございます。
6:39 AM
あった
6:39 AM
. ├── project.pbxproj ├── project.xcworkspace │   ├── contents.xcworkspacedata │   ├── xcshareddata │   │   ├── IDEWorkspaceChecks.plist │   │   └── swiftpm │   │   └── Package.resolved │   └── xcuserdata │   └── omochi.xcuserdatad │   └── UserInterfaceState.xcuserstate ├── xcshareddata │   └── xcschemes └── xcuserdata └── omochi.xcuserdatad ├── xcdebugger │   └── Breakpoints_v2.xcbkptlist └── xcschemes └── xcschememanagement.plist (edited)
6:41 AM
これだけ残すgitignore難しいな
Avatar
!でいけないのかな
Avatar
omochimetaru 7/5/2021 6:42 AM
こういうの何が起きるかわからんから使わんようにしとる・・・
Avatar
僕はこんな感じにしてますね。 /*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
Avatar
omochimetaru 7/5/2021 6:44 AM
! ルールが逆転勝利する条件がちょっとややこしいんだよね。フォルダ名には負ける。
Avatar
なんか ディレクトリ/* にしないとダメだった気がしますね
Avatar
omochimetaru 7/5/2021 6:45 AM
アスタリスクのあるやつにはかつ
6:45 AM
そうそう。
Avatar
むずい
Avatar
Avatar
koher
僕はこんな感じにしてますね。 /*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
これ良かったです。ありがとうございます
🙂 1
Avatar
Avatar
koher
僕はこんな感じにしてますね。 /*.xcodeproj/xcuserdata /*.xcodeproj/project.xcworkspace/xcuserdata /*.xcworkspace/xcuserdata
omochimetaru 7/5/2021 6:50 AM
xcshareddataのschemeはコミットする派ですか?
Avatar
はい。ライブラリの Carthage 対応とかでも必要だったしそうしてます。
Avatar
omochimetaru 7/5/2021 6:52 AM
Carthage対応だと必要ですね。
6:52 AM
なるほど。
6:57 AM
It is not possible to re-include a file if a parent directory of that file is excluded.
https://git-scm.com/docs/gitignore#_pattern_format
6:57 AM
ここが難しいポイントか
6:57 AM
親ディレクトリがignoreされてるとき ! で復活できない
Avatar
あー、それだ。毎回よくわかんなくなって調べてわかるんだけどまた忘れる。
Avatar
omochimetaru 7/5/2021 6:59 AM
ディレクトリをignoreするのか、ディレクトリの中のファイルがマルチマッチでignoreされているのかの意味の違いが大きい
7:03 AM
xcuserdata **/xcshareddata/**/*.plist *.xcscheme !Package.resolved うーん・・・
7:04 AM
xcuserdata **/xcshareddata/* !swiftpm こうなった
Avatar
Kishikawa Katsumi 7/5/2021 7:07 AM
7:08 AM
gitignoreとかは自分であれこれ悩むより高品質なものが得られると思う。
Avatar
omochimetaru 7/5/2021 7:09 AM
その実装だと IDEWorkspaceChecks.plist もコミットされませんか?
Avatar
Kishikawa Katsumi 7/5/2021 7:10 AM
されてる。これコミットしたらダメなやつでしたっけ?
7:10 AM
これはコミットしていいやつじゃない?
Avatar
omochimetaru 7/5/2021 7:12 AM
してもしなくてもいいやつはできればしたくない
Avatar
Avatar
Kishikawa Katsumi
gitignoreとかは自分であれこれ悩むより高品質なものが得られると思う。
omochimetaru 7/5/2021 7:13 AM
多くのパターンではそうだと思うんですけど、まだみんながやってないような構成とかをやるときに、 こういうのだとアンチパターンを踏んだりしそうなのと、 今では生成されないような大昔のツールのためのゴミファイル対応が書かれていたりすると、 自分でリポジトリ独自の追加項目を編集するときにノイズになるから避けてます。
7:14 AM
そのノイズ部分も含めて全容を理解してないと、不安になる。
Avatar
Kishikawa Katsumi 7/5/2021 7:20 AM
IDEWorkspaceChecks.plistはコミットすべきファイルと思いますよ。チームで誰かがその状態をコミットすれば他の人はやらなくていい、というもののはず。
Avatar
omochimetaru 7/5/2021 7:22 AM
ふむ・・・
Avatar
Kishikawa Katsumi 7/5/2021 7:24 AM
.gitignoreっていろんな書き方できるしチェックする手段にも乏しいから 複数のiOSアプリのリポジトリで微妙に項目が違う、みたいな状態よりはこのコマンドで自動生成しました、の方が私は安心できます。 今のところ、 gibo dump macOS Swift で生成されるファイルは https://github.com/kishikawakatsumi/Doorlock/blob/main/.gitignore で、使ってなくてもfastlane/carthage/cocoapodsの設定が入ってくるけど放置で気にならないくらいの内容。
Avatar
ユーザーネーム入ってたりあからさまにビルド成果物みたいなのはコミットしないけど、他はよっぽどのことがなければコミットしておいた方が良いヤツな気がする
7:29 AM
コミットせずに問題が発生した場合にコミットがないことを特定する方が、コミットにゴミが見つかることよりも遥かに難しいので、初動はコミットに寄せて良いかも
Avatar
無駄に入れることより必要なものが抜ける方がダメージが大きいですよね…
Avatar
Kishikawa Katsumi 7/5/2021 7:29 AM
Xcode 9.3 adds a new IDEWorkspaceChecks.plist file to a workspace's shared data, to store the state of necessary workspace checks. Committing this file to source control will prevent unnecessary rerunning of those checks for each user opening the workspace. (37293167)
これかな。 https://developer.apple.com/library/archive/releasenotes/DeveloperTools/RN-Xcode/Chapters/Introduction.html こんな古くからあったのか。
Avatar
Avatar
tarunon
コミットせずに問題が発生した場合にコミットがないことを特定する方が、コミットにゴミが見つかることよりも遥かに難しいので、初動はコミットに寄せて良いかも
omochimetaru 7/5/2021 7:31 AM
なるほど。その2択で考えるとたしかに。今回の Package.resolved に気づかなかったのもそう。
7:32 AM
Committing this file to source control will prevent unnecessary rerunning of those checks for each user opening the workspace.
prevent uncecessary...だからコミットしたほうがいいのか。
Avatar
Avatar
Kishikawa Katsumi
.gitignoreっていろんな書き方できるしチェックする手段にも乏しいから 複数のiOSアプリのリポジトリで微妙に項目が違う、みたいな状態よりはこのコマンドで自動生成しました、の方が私は安心できます。 今のところ、 gibo dump macOS Swift で生成されるファイルは https://github.com/kishikawakatsumi/Doorlock/blob/main/.gitignore で、使ってなくてもfastlane/carthage/cocoapodsの設定が入ってくるけど放置で気にならないくらいの内容。
僕は逆に↓こういう色んなものが盛り盛りで入っている ignore ファイルは意図しないに ignore が紛れ込みそうで怖いですね。たとえば build という名前のディレクトリがどこかの階層にあったとしても ignore されてしまいますよね?たとえば scripts/build/ とか、ビルド関係のスクリプトを入れるディレクトリとかありえそう。 https://github.com/github/gitignore/blob/master/Swift.gitignore
Avatar
omochimetaru 7/5/2021 7:55 AM
.build ですね。ドットつき (edited)
Avatar
Avatar
omochimetaru
.build ですね。ドットつき (edited)
Avatar
omochimetaru 7/5/2021 7:56 AM
49行目を見てた。ほんとだ。
Avatar
foo/bar/build/foo.txt が ignore されるのを確認しました。
Avatar
Kishikawa Katsumi 7/5/2021 7:59 AM
こういう色んなものが盛り盛りで入っている ignore ファイル
とは思ってないんですよね。私は不要なものが入りつつもチェックできる量だし手書きされたものより整理されてて読みやすいと考えています。
(edited)
8:01 AM
別の方法だとチームでメンテする.gitignoreのベースファイル、、、みたいなのもありかなあ?
Avatar
コミットせずに問題が発生した場合にコミットがないことを特定する方が、コミットにゴミが見つかることよりも遥かに難しいので、初動はコミットに寄せて良いかも
この方針を実践するために必要最小限で初めて、 git add で追加すべきでないものを見つけたら都度追加でいい気がしますけどね。
Avatar
Avatar
d_date
原因はNetwork.frameworkがビルドされたコンパイラと、手元のコンパイラ(Xcode 13 beta 2) が違うことっぽい Failed to build module 'Network'; this SDK is not supported by the compiler (the SDK is built with 'Apple Swift version 5.5 (swiftlang-1300.0.20.4 clang-1300.0.21.1)', while this compiler is 'Apple Swift version 5.5 (swiftlang-1300.0.20.104 clang-1300.0.21.1)'). Please select a toolchain which matches the SDK.
Accelerate.frameworkでも同じことが起こってそうでこちらはなぜかplatformsを指定すると直る https://github.com/onevcat/Kingfisher/issues/1725#issuecomment-869594683
Hello, Can any one help me I have face issue on Accelerate. I user Latest xcode 13 beta. Failed to build module &#39;Accelerate&#39;; this SDK is not supported by the compiler (the SDK is b...
😲 2
Avatar
今度はCombine 🤬
Avatar
struct Foo { let x: String = "" var y: String = """ """ } 1. let x = ... をカット&ペースト 2. そのままエンターでxとyの間に改行 3. 改行位置に"が挿入されてしまう 複数行リテラル絡みのバグ?
Avatar
pullしてきたコミットがPackage.resolvedを編集してたとき、Xcodeが勝手にその内容を自分が持ってる状態のPackage.resolvedに上書きしてしまって編集合戦が起こってしまうのですが、何かいい対策ってありますか?
4:10 AM
今の所Xcodeから Update to Latest Package Versions して直してますが、これ結果が偶然一致しないと直らないからいつか困りそうだなと
Avatar
yutailang0119 8/26/2021 4:11 AM
影響しあう箇所ならコンフリクトするからわかるという話ではなく?
Avatar
少しでもdiffがあるとXcodeの内部状態で上書きされるんですよね😢 Xcode側で正しいパッケージが取得されなくて変更によってはコンパイルエラーになってしまいます
Avatar
omochimetaru 8/26/2021 4:52 AM
pullする前にXcodeを終了する・・・?
Avatar
DiskVersion使う?みたいなアラートは出て来ないのか
Avatar
omochimetaru 8/26/2021 4:54 AM
pbxprojだとそういうの出るよね
4:54 AM
なんかこのPackage.resolvedは強気に行かれてる気がする
Avatar
project.pbxproj に書かれたパッケージバージョンの制約をちゃんと満たしていたら Package.resolved 更新後に "Reset Package Caches" すれば Package.resolved のバージョンをちゃんとフェッチして来てくれたはずです。(project.pbxproj に記述された制約を満たしていないと "Reset Package Caches" 後に Package.resolved が勝手に変更される)
Avatar
やっぱりキャッシュ飛ばさないとですかね〜結構依存のフェッチやビルドが重いので避けたかったです
Avatar
Avatar
d_date
今度はCombine 🤬
これ、利用しているPackage.swiftにplatformが記述されると直ることがわかったのだけど、LinuxとかServer Side Swiftでも利用しているPackageにplatform: [.iOS(.v12)]とか書いて大丈夫なんだろか
Avatar
vaporなんかはLinuxでよく使われてるでしょうけどplatforms書いてありますね。 https://github.com/vapor/vapor/blob/main/Package.swift#L6-L11
Avatar
Kishikawa Katsumi 8/27/2021 2:40 AM
問題ないっすよ。ただ無視されるだけです。
2:42 AM
よくはわかってないけどあれは書いてないものはデフォルト(一番小さい値)になるんじゃないかな。 つまりiOS専用にしたいと思ってiOS(v13)とか書いてもMacビルドやLinuxビルドは可能。
Avatar
問題ないんだ。じゃあSwiftNIO関係にplatform書いてPR出しまくるか…
Avatar
omochimetaru 8/27/2021 3:46 AM
@available(iOS... とかとおなじですね
3:46 AM
プラットフォーム系は OR で接続されてる
Avatar
SwiftNIO、platform指定する必要ありましたっけ
Avatar
Network.frameworkを使ってるとRelease buildできないというのがXcode 13 betaで発生していて、workaroundがplatformsでiOS12以上を指定することというのがある 追加するのswift-nio-transport-servicesだけでいいのかもしれない (edited)
3:50 AM
Swift libraries may fail to build for iOS targets that use armv7. (74120874) Workaround: Increase the platform dependency of the package to v12 or later.
https://developer.apple.com/documentation/xcode-release-notes/xcode-13-beta-release-notes
Avatar
なるほど…
Avatar
Combineに依存してるcombine-schedulersは同じ対応で治ったところ https://github.com/pointfreeco/combine-schedulers/commit/6bde3b0063ba8e7537b43744948535ca7e9e0dad
  • Restore platform requirements
    • import uikit
    • nvm
    • wip
    • wip
    Co-authored-by: Brandon Williams
Avatar
あーそうか、モジュールごとにバージョン一致チェックするから、SDKのライブラリ使う全部のモジュールがその指定必要なんですね
3:53 AM
かなり厳しい
Avatar
めちゃ困ってる…
Avatar
ワークアラウンドでmin os version上がるの困るなあ (edited)
Avatar
影響受けるのSwift PMだけなので、v12で問題は起きないんじゃないかなぁ
Avatar
とりあえずiOSは影響少なそうですね
4:01 AM
PFのやつはXcodeの正式版で治ったら制約外すんですかね
Avatar
んーCombineがもともとApple platformでしか使えないから、そのままにするんじゃないかなぁ
Avatar
そうか、そもそものCombineの下限があることを忘れてた
Avatar
Debugビルドでもコケてくれたら助かったんだけどなぁ
Avatar
クローズされてしまった🙃
Avatar
気持ちは分かる
8:21 AM
ベータの間はパッチ当てて使うしか無いですね
Avatar
forkして使うかーーー
Avatar
Kishikawa Katsumi 8/27/2021 8:35 AM
まあリリース版のXcodeでどうにかならなかったら大騒ぎっすね。 (edited)
8:36 AM
私もBeta版の間のワークアラウンドとかはしたくないのでわかる。 物によってはBetaってバージョンをつけてリリースしたことはあるけど。
Avatar
モジュールファイルのバージョンの完全一致が要求されるのはベータの間だけなので大丈夫なはず
Avatar
Kishikawa Katsumi 8/27/2021 8:37 AM
おお、なるほど。そういうことですか。つまり自然に直ると。自然に直るからXcodeもきっと放置している感じか。
Avatar
そうなんじゃ無いかなぁと思います
8:41 AM
出荷プロセス直すの大変そうだし…w
Avatar
omochimetaru 8/27/2021 8:42 AM
closeされたPRって、ブランチデリートされなければブランチ残ってる?
8:43 AM
あーてか、フォークしてるからフォークした方にあるのか
8:43 AM
PRの状態で残しておけば、そのPRブランチをSwiftPMから指定してれば、 xcode-beta用のパッチリリースを使う状態が維持できると思ったけど、 普通に自前フォークを使ってるのと特に変わらないね。
Avatar
norio_nomura 8/27/2021 8:57 AM
.branch( "pull/128/head")とか指定すればフォーク先も参照できる
Avatar
omochimetaru 8/27/2021 8:57 AM
おお、 pull/xxx って書き方があるんですね
Avatar
Kishikawa Katsumi 8/27/2021 9:14 AM
なんと便利な
Avatar
omochimetaru 8/27/2021 9:15 AM
まあ結局、自分でmainの更新をマージし続けないといけないけど
9:15 AM
リポジトリURLは本家にしておけるからちょっとうれしい
Avatar
norio_nomura 8/27/2021 9:18 AM
あ、PRが閉じられた後のPR元ブランチの更新まで追跡されるかどうかは知らないです。
Avatar
無事forkしたやつでアーカイブできた branchでSwiftPMで指定すると芋づる式に全部branchかcommitで指定する必要があるけど仕方なし
Avatar
omochimetaru 9/13/2021 5:26 AM
Safariで間違ってタブ閉じた時にCmd+Shift+Tで戻せるやつ、Xcodeにはありますか?
Avatar
ない気がする
Avatar
omochimetaru 9/13/2021 7:01 AM
やっぱり無いかあ
Avatar
最近使ったファイルから開き直しかないかな (edited)
Avatar
omochimetaru 9/13/2021 7:02 AM
Open Recentには個別のソースファイルは居ないっぽい (edited)
Avatar
あーえっとなんか◻︎が4つのやつから。
7:04 AM
ここにキーボードでアクセスできたような気もするけど…
Avatar
omochimetaru 9/13/2021 7:05 AM
おお。これか。
7:05 AM
ありがとうございます、これ知っとく情報だ。
Avatar
Ctrl+2かな (edited)
7:07 AM
ちがうな、Ctrl+1〜6のどれかに近いやつ (edited)
Avatar
omochimetaru 9/13/2021 7:07 AM
おおなんだこれ。関数シンボルもついてる
Avatar
でもないっぽい
7:09 AM
2はタブのヒストリを遡るやつかな。たぶん閉じちゃうと消えちゃうかも。 (edited)
Avatar
omochimetaru 9/13/2021 7:09 AM
いや、のこってるみたいです
Avatar
おー。
Avatar
2のやつはそのタブ内の履歴じゃないですかね
Avatar
omochimetaru 9/13/2021 7:09 AM
ああー
7:09 AM
俺が言ってるのはタブじゃない何かかも
Avatar
omochimetaru 9/13/2021 7:10 AM
そういう意味では 「Ctrl + 2, ↓, Enter」でやりたいことできますね
Avatar
VisualStudio Code以降、タブ内タブの概念が登場して複雑 (edited)
Avatar
omochimetaru 9/13/2021 7:11 AM
これなんていえばいいんですか?
Avatar
タブだと思います
Avatar
omochimetaru 9/13/2021 7:11 AM
Avatar
タブ(タブじゃない)
Avatar
www
Avatar
omochimetaru 9/13/2021 7:12 AM
ちゃんとした名前がわからないとこういうとき会話で不便ですね
Avatar
OS標準っぽくないほうのタブ
Avatar
omochimetaru 9/13/2021 7:12 AM
VSCタブ
Avatar
たぶんでも、「タブじゃないほうのタブ」で伝わるw
Avatar
Miwa / Ensan 9/15/2021 2:15 AM
なぜXcode 12.0のbeta5と比較するんだ
iosdckusa 3
1:58 AM
1:58 AM
Xcode 13 RCのシミュレーターの描画がひどい壊れ方をする
😇 3
Avatar
miniだと描画崩壊するけど、SE 2だと崩壊しないと教えてもらった
Avatar
確かにXcode13RCのシミュレータだと12 miniや13 miniで崩れる部分がありますね… (リリース前の開発中のアプリだから、iOS15正式リリース後に調べようと放置中…) (edited)
Avatar
x3のデバイスでおかしくなる現象があったはず...
Avatar
omochimetaru 10/5/2021 5:15 AM
Xcode12 let a = true, b = true, c = true let x = a && b && c
5:15 AM
Xcode13 let a = true, b = true, c = true let x = a && b && c
5:15 AM
嫌だ・・・
Avatar
あれ、このへんXcode12でいい感じになったと思ったのに戻っちゃったんですね
Avatar
swift-format入れてるからどうなるかな?と思って試してみたら容赦なく1行に治されたw
6:43 AM
こうなった
Avatar
Kishikawa Katsumi 10/5/2021 7:01 AM
swift-formatは横幅を超えないとここは改行してくれないっぽいですね。
Avatar
そうなんですよね。でもIDEにいちいちキレてるのも辛いと思うので任意のフォーマッタかけちゃうのが良いんじゃないかと思います
Avatar
omochimetaru 10/5/2021 7:56 AM
Xcode自体の組み込みのほうがエディタとキビキビ連携するじゃん
Avatar
壊れてたら意味ないでしょ
Avatar
omochimetaru 10/5/2021 7:57 AM
外部化するよりはイヤイヤ使うほうがマシ派
7:57 AM
ところでswift-formatは
7:58 AM
最近出たrintaro機能の対応が漏れてて崩れるって話があった
7:58 AM
#if が メソッドチェーンに使えるやつ
7:58 AM
新しい文法に追従するパワーがないとするとちょっと心配になった (edited)
Avatar
それもだし、get throwsも壊れてるね
Avatar
omochimetaru 10/5/2021 7:58 AM
それも新しい文法だね
Avatar
まあそういうのは // swift-format-ignore しておけばok
Avatar
omochimetaru 10/5/2021 7:58 AM
ああ〜
7:59 AM
Xcodeはそういう逃げ道ないな。
Avatar
壊したらコンパイルエラーだからすぐわかるし
7:59 AM
でもXcode手動はフォーマット壊れてるのに気付かないから
7:59 AM
自動化も出来ないし、基本的にはフォーマッタ入れるのが良いと思う
7:59 AM
別にswift-formatに拘る必要は無くて、swiftlintとかでもいい
Avatar
norio_nomura 10/5/2021 8:12 AM
swiftlintのフォーマッタはSourceKitのAPIを使ってて、以前はXcodeと同じ結果になったけど、最近はどうなんだろう?
Avatar
Kishikawa Katsumi 10/5/2021 8:13 AM
フォーマッタに従うでいいんだけど、BuiltInのフォーマッタが無いとそれは難しいですよね。 ということでBuiltInのフォーマッタ早く、、、頼む、、、
Avatar
omochimetaru 10/6/2021 7:18 AM
Xcode13になって、ルートプロジェクトが(xcodeprojではなく)SwiftPMの場合に、
7:19 AM
依存パッケージをD&Dしてedit modeにする機能が完全に消えてないすか?
7:20 AM
ドラッグアンドロップしても、ディレクトリのファイルツリーへの追加になってしまって、 依存先パッケージのディレクトリがコピーされるだけ・・・
7:23 AM
Xcode11で機能が提供されて、Xcode12でremoveがdeleteになるバグが産まれて、Xcode13で機能がなくなったように見える。 (edited)
Avatar
omochimetaru 10/6/2021 8:17 AM
struct A<T> where T: P {} Xcode13のインデントルール、↑のケースの T: P の行のインデントもしなくなってる
Avatar
Kishikawa Katsumi 10/6/2021 10:43 AM
なるほどxcodeprojがない場合は調べてなかったな。見てみよう。
Avatar
Avatar
Kishikawa Katsumi
なるほどxcodeprojがない場合は調べてなかったな。見てみよう。
iOS開発だとそのような構成は無さそうですけどvaporだとそうなりますね (edited)
Avatar
Kishikawa Katsumi 10/6/2021 11:35 AM
SwiftPMがgenerate-xcodeprojをdeprecatedにしたのは早まったんじゃないか。。。
Avatar
Avatar
Kishikawa Katsumi
SwiftPMがgenerate-xcodeprojをdeprecatedにしたのは早まったんじゃないか。。。
完全に同意です。
11:38 AM
そろそろいけるかな、を何回か試してますが、やっぱりファイルの同期が若干怪しい… 再現性がないのがさらに難しい
Avatar
Kishikawa Katsumi 10/6/2021 11:40 AM
なるほどねえ。いずれなくすのはそうなんだろうけどもうちょっとちゃんとできてからお願いします、みたいな。
Avatar
非推奨(メンテはするよ)であることを祈ってます
Avatar
Kishikawa Katsumi 10/6/2021 11:43 AM
メンテはするよ
ここが気になってるんですよねえ。もともとgenerate-xcodeprojが出すファイルは完璧なものじゃないし、メンテしていくのは大変そう。
Avatar
機能が消されさえしなければ、xcodeprojなら自分で設定をオーバーライドできる上、最悪SwiftPMのgenerate-xcodeprojのコードを直せばいいんですけど、Xcode統合されちゃうと我々一般ユーザは何もコントロールできないんですよね。 (edited)
11:49 AM
メンテする気がないので機能を消すよ、になってしまうとかなり辛い…
Avatar
Kishikawa Katsumi 10/6/2021 11:57 AM
そうですね。同意です。
Avatar
(ルートがPackage.swiftの場合の)ローカルエディット、 @t.ae も、Xcode12のときはできたけど、Xcode13になってから、できたこと無いらしいです。 (edited)
Avatar
Kishikawa Katsumi 10/6/2021 12:10 PM
うん、できないね。。。
Avatar
お、岸川さんでも駄目ですか
12:11 PM
僕がGUIを使うセンスの問題で見落としてるとかじゃなさそうだ・・・
12:14 PM
Xcode13,ベータだとそもそもコンパイルとかビルドに問題があったから、試さなかったんだよな〜
12:14 PM
「誰も、バグレポートを、送っていないのである!!」になってしまったのかな・・・
Avatar
Kishikawa Katsumi 10/6/2021 12:17 PM
12.5はできるな。13の問題っぽい。
Avatar
左のペイン、アイコンとか変わってるし、改修ついでに機能消えてそうですよねw
Avatar
Kishikawa Katsumi 10/6/2021 12:19 PM
そもそもこれは正しい方法なのか、っていう操作ですからねえ。知らずに消してしまったというのはありそうだ。
Avatar
メインメニュー経由の正規の方法が無いですしねえ
Avatar
swift package editの状態を同期してくれると嬉しいんですけどねぇ (edited)
Avatar
Kishikawa Katsumi 10/6/2021 12:24 PM
Xcodeのチームは革新派と保守派の派閥があって1年ごとに交代して開発しているということを前に考えてた。
😂 3
t_naruhodo 1
Avatar
Avatar
Yuta Saito
swift package editの状態を同期してくれると嬉しいんですけどねぇ (edited)
もしかしてそうかなと思って試したけど駄目だった
Avatar
やっぱり消えてしまった…
Avatar
XcodeとSPMは仲良くして欲しい
Avatar
ワークスペースを使えばなんとかなりそうかな。ワークスペースのトップに、利用側のパッケージと、依存先のパッケージのローカルコピーを追加したら、昔と同じように使えそう
Avatar
インデントの件もswift packageの件もFBいただけると助かります。インデントはケースごとに別のFBいただけると 🙇
🙏🏻 2
Avatar
omochimetaru 10/7/2021 3:56 AM
報告していくか・・・ guard case else のインデントも変になってた。2段下がってしまう。 (edited)
Avatar
Avatar
hironytic
ワークスペースを使えばなんとかなりそうかな。ワークスペースのトップに、利用側のパッケージと、依存先のパッケージのローカルコピーを追加したら、昔と同じように使えそう
omochimetaru 10/7/2021 3:57 AM
ワークスペース直下にパッケージを入れると、どうなるんですか? 同じ名前なら、片方がURLで依存先を持ってても、ローカルエディットとして上書き状態になる?
Avatar
そうですね。同じ名前なら、一番下の Package Dependencies の下からそのパッケージが消えて、ワークスペースに入ってる方を見にいくみたい。なので以前と同じ使い方になるかなと。
Avatar
omochimetaru 10/7/2021 4:02 AM
おお。なるほど・・・
Avatar
Xcode13.1で、コードを書き換えて、コンパイルエラーになるような変更が生じたはずなのになぜかコンパイルが通って、そのさきでリンクエラーになってしまって、 状況を回復するにはクリーンするしか無いけどそうすると依存を全部リビルドするので待ち時間が長くて困る という問題があったんだけど、 やっと法則がわかってきた気がする。 SwiftPMプロジェクトで、型のinitに引数を追加した時に、それが起きてる気がする。
9:02 AM
モジュール分割も関係あるかも。
Avatar
この前リファクタリングしていた際にそれに遭遇して凄く大変でした…
Avatar
Avatar
nanasi
この前リファクタリングしていた際にそれに遭遇して凄く大変でした…
お、ありますよね クリーンしないで該当箇所だけリビルドさせる技があると良いのですが
Avatar
Avatar
omochimetaru
お、ありますよね クリーンしないで該当箇所だけリビルドさせる技があると良いのですが
Xcode12のときは起こらなかった気がするのでXcode13が何かおかしい気がします (他にも変な補完やエディタのラグにも結構悩まされています)
Avatar
ですね。13になってから生じてます。
3:07 AM
エディタが重くて文字入力が付いてこないのとか、インデントがおかしいとか、いろいろと変。
Avatar
なんだったかな...
3:07 AM
なんかworkaroundした記憶が微かに
👀 1
3:07 AM
SPM周りで...
Avatar
ただリビルド不発バグはXcodeじゃなくてコンパイラの問題だと思うんですよねえ
Avatar
linkerフラグかなにかだったような...
Avatar
コード書いてるだけでXcode13がクラッシュするバグも実はあるんだけど
7:55 AM
コードキャッシュの状態と依存していて、コードだけでは再現しないが、再現する状態になると確定で死ねる
7:55 AM
これが起きるパターンがわかってきたかもしれない
7:56 AM
extension T { static func foo() -> T { ... } }
7:56 AM
↑こういうコードが有る時に
7:56 AM
十分に元のコードをコンパイラサービスにインデックスさせてから extension Optional where Wrapped == T { static func foo() -> T? { ... } } ↑こういうコードに書き換えようとすると、Xcodeが吹き飛ぶ
7:57 AM
文字の削除や入力、カーソル位置などの加減により落ちる
Avatar
xcodebuild-destinationgeneric/ っていうのがあるってどこにも書いてないよね...?
Avatar
Kishikawa Katsumi 11/27/2021 6:47 AM
manかな
6:48 AM
Some actions (such as building) may be performed without an actual device present. To build against a platform generically instead of a specific device, the destination specifier may be prefixed with the optional string "generic/", indicating that the platform should be targeted generically. An example of a generic destination is the "Any iOS Device" destination displayed in Xcode's UI when no physical iOS device is present.
Avatar
manかあ ...
6:25 PM
気がつかなかった。
Avatar
Kishikawa Katsumi 11/27/2021 6:47 PM
xcodebuildのAPIデザインはなんなんでしょうね
Avatar
混沌としている...
6:26 AM
歴史をしらべたら面白いかも
Avatar
Kishikawa Katsumi 12/18/2021 4:14 AM
Xcode 13.2.1か。libSwift_Concurrency,dylibのクラッシュとApp Store版でSwift PMのエラーが出る問題は直ったみたい。 BetaやRCを刻んでるのは何のためかとちょっと言いたくなるけどよかった。
t_yasashii 1
Avatar
iOSのasync await時代が来た
Avatar
Kishikawa Katsumi 12/18/2021 4:18 AM
for await notification in NotificationCenter.default.notifications(named: ...) { ... } ^ これがめっちゃ便利と思ってるのでこの辺をバックポートしてほしいぜ
Avatar
このままだとリークしちゃう…
Avatar
SDKのオーバーレイのオーバーレイを用意してくれるとバックポートできるのかなぁ
Avatar
Kishikawa Katsumi 12/18/2021 4:22 AM
これリークするの?
Avatar
Task { for await ... { // self参照 これでリークが完成します。
4:23 AM
NotificationCenterなら確実
Avatar
Kishikawa Katsumi 12/18/2021 4:24 AM
やってみる
Avatar
Kishikawa Katsumi 12/18/2021 4:33 AM
ホンマや
4:33 AM
えー、これでリークするのか。辛いなあ。
4:37 AM
Task { [weak self] in let notifiations = NotificationCenter.default.notifications(named: ...) for await notification in notifiations { ... self?... } }
4:37 AM
こうか?
Avatar
leakはnotification centerだから?
Avatar
guard let else breakしないとダメ
Avatar
Kishikawa Katsumi 12/18/2021 4:38 AM
そういうことか。
Avatar
while trueで無限ループと現象としては同じです
Avatar
一度も発火しないnotificationだと一生self掴まれたまま?
Avatar
ありそう
Avatar
selfはweak参照にしておけばまあ大丈夫で
4:39 AM
その場合関数だけ抜け出せなくなる
Avatar
そうか、ゴミはTaskだけか
Avatar
外側のdeinitでTaskをキャンセルすれば、ケアとして完璧になる
4:39 AM
過去ログあったはず
Avatar
NotificationCenter.default.notifications(named: ...) この形式は、unsubsribeする手段は無い?
4:40 AM
たとえweakにしてても最後の一回が来るまでコンテキストはリークしちゃうやつかしら
Avatar
Avatar
omochimetaru
NotificationCenter.default.notifications(named: ...) この形式は、unsubsribeする手段は無い?
Kishikawa Katsumi 12/18/2021 4:41 AM
Nameを指定して消すことができるんじゃないかな。
4:42 AM
非対称になるけど、たぶん NotificationCenter.default.removeObserver(..., name: ..., ...) で通知解除できると思う。
Avatar
囲ってるTaskのcancelを読んだらwithTaskCancellationHandlerで勝手にunregisterしてくれないですかね (edited)
Avatar
Kishikawa Katsumi 12/18/2021 4:45 AM
結局NotificationCenterはずっと難しいのか
Avatar
Avatar
Kishikawa Katsumi
非対称になるけど、たぶん NotificationCenter.default.removeObserver(..., name: ..., ...) で通知解除できると思う。
それって渡すobjectが対応取れてないんじゃないかしら?
Avatar
Kishikawa Katsumi 12/18/2021 4:45 AM
Objectはフィルタに使われるだけ、のはず。指定しなかったら全部。
Avatar
全部なるほど。それだと今度は、関係ない購読を巻き込み解除する可能性がある?
Avatar
Kishikawa Katsumi 12/18/2021 4:46 AM
Keyboardとかいろんなところで使われるやつはそうなるかな。 いやどうだったかな。間違ってるかも。
4:47 AM
クロージャを取るやつばっかり使ってて完全に忘れた。
4:48 AM
anObject The sender to remove from the dispatch table. Specify a notification sender to remove only entries with this sender. When nil, the receiver does not use a sender as criteria for removal.
あってるはず。SQLでいうWhere条件。
Avatar
does not use a sender as criteria for removal.
ちょっと英語が難しいけど削除条件としてsenderを無視する=全部対象にする ということか
Avatar
Avatar
Kishikawa Katsumi
Keyboardとかいろんなところで使われるやつはそうなるかな。 いやどうだったかな。間違ってるかも。
他の画面でやってること全部把握してないといけないからそれは難しいなあ、そういう複雑な購読に心当たりはないから、だいたいは問題にならないだろうけど・・・ (edited)
Avatar
Kishikawa Katsumi 12/18/2021 4:51 AM
NotificationCenter.default じゃなくてインスタンスを作ればよさそうだが。。。まあでもそれはSenderのObjectをプロパティに持つのと手間と読みやすさは変わらないかな?
Avatar
default以外使った事なかった 自分で作った場合でもイベント届くんですか?
4:56 AM
イベントがdefaultに送信されているのだと思い込んでいました
Avatar
Kishikawa Katsumi 12/18/2021 5:06 AM
あ、ごめん、システムの通知とかは届かないですね。自分で通知を送る場合は、だから今回の場合は意味なかった。
Avatar
ああなるほど 自分で通知システムを送信側も含めて組みたい時にそういう方法があるんですね。
Avatar
問題解決されたっぽい?
Xcode 13.2.1 also includes bug fixes: • Apps built with Swift concurrency may crash on launch • Xcode was unable resolve Swift packages
https://apps.apple.com/jp/app/xcode/id497799835?mt=12
(edited)
Avatar
Kishikawa Katsumi 12/18/2021 11:40 AM
されたっぽい
Avatar
Kishikawa Katsumi 12/18/2021 11:49 AM
AsyncSequenceになんかCancelの仕組みがあるかと思ったけどないんだなあ。 NotificationCenter.default.notificationsはその部分の見た目はとてもいいけど上記の問題を考えるとCombineで書く方がいいかな。 (edited)
11:50 AM
そうするとAsyncSequenceでCombineいらなくなるって話もそうでもないのかな?
Avatar
Combineにしても本質的には同じですからね
11:51 AM
selfキャプチャ周りの上手い仕組みが出て来て将来的に解決されるんだと思います (edited)
Avatar
Kishikawa Katsumi 12/18/2021 11:52 AM
なるほど本質的に解決されるのはいいですね。
11:53 AM
現状だとCombineはCancellableがあるからそういうのがAsyncSequenceにあるととりあえずもう少し簡単になるのかなと思った。
Avatar
Taskにcancellerがある
Avatar
Kishikawa Katsumi 12/18/2021 11:54 AM
Taskを止める、でいけるのか。
Avatar
Taskの問題としては、暗黙selfキャプチャとdiscardResultのせいで失敗が見えにくくなることですね (edited)
Avatar
Kishikawa Katsumi 12/18/2021 11:56 AM
Taskの問題としては、暗黙selfキャプチャとdiscardResult
あ、以前に書かれてたのはそういうことか。理解した。 そう、selfを教えてくれないのと、Combineと違ってTaskを保持しなくても怒られないし、止まったりもしない。 っていうのは便利な部分もあるけどそうじゃない面も大きいですね。
Avatar
Combineは必ずしもメインスレッドが保証されないという点はありますが、それ以外のミスりにくさに関してCombineに利点がありそうですね
Avatar
Kishikawa Katsumi 12/18/2021 2:11 PM
メインスレッドにするのは receive(on: DispatchQueue.main) だとダメ?
Avatar
それで良いと思います。MainActorと比べるとそのほうが忘れやすそうだなぁと
Avatar
Kishikawa Katsumi 12/18/2021 3:09 PM
確かに。receive on mainとweak selfは全部に書く感じで慣れたからわからなかったけど、普通に忘れそうですね。
Avatar
知ってる方いたら教えて欲しいですが、Xcodeで宣言したSwiftパッケージ(Package.swiftのものではなく)を、Xcodeのメニューから解決するのと同じ動きをするターミナルコマンドってありますか?(xcodebuild -resolvePackageDependencies で解決しても、Xcode開くときはまた別のパスで解決しなおすので 🤔
Avatar
別のパス?
12:50 AM
~/Library/Developer/Xcode/DerivedData じゃない場所ってことですかね
Avatar
-resovePackageDependencies でやるとxcodeprojか.xcworkspaceの中で.swiftpm作ってるっぽい…?ので、xcodebuild -resovePackageDependences をやっても結局Xcode起動してもXcodeがもう一回依存解決するんですよね 🤔 xcodebuild で落としてきたパッケージ全然利用されてる形跡が見当たらないえす
Avatar
なるほど...
1:18 AM
それはなんか不思議。挙動分ける意味あるのかな...
Avatar
何か環境変数あるかも
Avatar
現象を再現してみようと思って新しいプロジェクト作ってみたら再現されない 🤔 なぜだろ
Avatar
どこかにどこでresolveするか覚えている...?
1:54 AM
それをxcode.appは見るけどxcodebuildは見ないとか...
Avatar
多分ですけど、新しいプロジェクトだと明示されてる環境変数が増えていて
2:08 AM
無い場合に挙動が定まってないんだと思います
Avatar
なるほど
Avatar
aggregation targetに環境変数全部吐き出すスクリプトかいて
t_naruhodo 1
2:08 AM
xcodebuildでこれを走らせて差分見るとわかるかも
Avatar
t_naruhodo 後で見てみます
Avatar
ああ原因わかったかも、と言うか私の勘違いでした 🙇‍♂️ 弊社環境構築のスクリプトで、XcodeのSwiftPackageあるかどうかをみてるのはxcodeprojかxcworkspaceの中に.swiftpmがあるかどうかで判定していますが、そもそもXcodeGen使ってるから初期状態では.swiftpmが存在しないので、環境構築のスクリプトでそもそもパッケージが解決されてなかったからXcode開くときにパッケージの解決してるんだった 🙇‍♂️ お騒がせしました
👍 2
2:48 AM
さて判定ロジックはどう直せばいいだろ 🤔
Avatar
if grep -q "isa = XCSwiftPackageProductDependency;" "$project_file/project.pbxproj" にすることにした
Avatar
Kishikawa Katsumi 1/14/2022 7:19 AM
Interface Builderにいつの間にかいろんな種類のボタンのプリセットが追加されててなんとなくmacOSっぽくなってきた。
👀 1
7:24 AM
Macはここら辺のボタンとラベル、テキストフィールドはどれもNSButtonかNSTextFieldでイニシャライザに渡すパラメータが違うだけ。
Avatar
全然気づいてなかったんですが、Xcode 13 から Vim mode 来てたんですね… Xvim 殺されてから久しくて全然マークしてなかった
Avatar
Xcode13.3 lldbに日本語入力しようとすると100%フリーズする?
Avatar
(lldb) expr "にゃーん" (const char [13]) $0 = "にゃーん" (lldb)
10:16 PM
すくなくともlldbそれ自体はフリーズしない
10:16 PM
$ lldb --version lldb-1316.0.9.41 Apple Swift version 5.6 (swiftlang-5.6.0.323.62 clang-1316.0.20.8)
Avatar
確かにデバッグ実行を一時停止させてlldbに日本語打ち込もうとした瞬間固まりますね… (アクティビティモニタでXcodeの「% CPU」がほぼ100%に張り付くし) (edited)
Avatar
Xcode の SourceEditorLayoutManager のバグっぽいですね。 (edited)
1:03 AM
lldb生で使えば問題ないので、Xcodeが悪い
1:04 AM
13.3は頻繁にいきなりクラッシュするし完成度が非常に低い
Avatar
omochimetaru 4/11/2022 1:08 AM
Xcode13.3は13.2のswiftpmのビルド重すぎ問題がだいぶよくなってます
Avatar
xcode の成果 vs Swift の成果...
1:09 AM
チームが違いそう
Avatar
omochimetaru 4/11/2022 1:09 AM
xcode13.2のビルド重すぎ問題は、コマンドラインからswift buildすると問題ないので、xcodeの問題だった
Avatar
最近xcodebuildだと問題なくて、Xcode.appだと問題ないというケースがあってXcode.appの信用が失墜してる
t_desune 2
Avatar
シミュレータで文字入力後にブレークポイント打っていたので、わかってからもついついフリーズに遭遇して面倒でした…
11:17 AM
(ひとまず書類ごとに入力ソースを自動的に切り替えるを有効にして誤爆しないようできましたが)
Avatar
iOS 15.6 beta / iPad OS 15.6 beta に上げたら Xcode と繋げれなくて悩んでたんですけど、Xcode 13.4 は未対応なんですね https://developer.apple.com/documentation/ios-ipados-release-notes/ios-ipados-15_6-release-notes
Xcode 13.4 is unable to prepare iOS 15.6 beta devices for development (93452791) Workaround: Use Xcode 13.3.1.
😨 2
Avatar
あるある、最近Xcodeだけなんか更新遅いのは多分realityOSをリークさせないためではないかと思ってます (edited)
t_naruhodo 3
1:05 AM
WWDCまで日がないので、多分Xcodeのベータがこれ以上出るのはないかなーと。
1:05 AM
今回RealityOS関係が発表されるのはとても可能性が高い...
1:06 AM
Xcodeは複数いれられるのでいっぱい飼ってる人多いですよね。
😅 2
Avatar
RealityOS楽しみ 😄
Avatar
omochimetaru 5/30/2022 4:14 AM
ず〜っと噂されてたAppleのARデバイスがいよいよ出そう?
4:14 AM
そういうのってWWDCじゃなくて製品発表のほうじゃないんでしたっけ
Avatar
そんなことないかなー。
Avatar
omochimetaru 5/30/2022 4:15 AM
WWDCで発表されるデバイスもあるっけか
Avatar
realityOSだけをアナウンスしてデバイスが出ないとかはないと思う
Avatar
iPhoneとiPadはそうじゃない?
Avatar
M1とかはそうだったけど...
Avatar
omochimetaru 5/30/2022 4:15 AM
あーM1そうだったか
Avatar
なんか開発キットだけ先に配られるパターンはないとは言えないかなあ
4:16 AM
製品は秋に、とか。
4:16 AM
Xcodeの話題じゃない...
4:17 AM
#apple-official-event かな?
Avatar
omochimetaru 6/7/2022 3:28 AM
Xcode 14 has a code snippet to generate a memberwise initializer 🙌 (works with both classes and structs) #WWDC22
Likes
314
t_yatta 11
Avatar
おお〜〜
3:37 AM
手元だと調子いいときしか出なかったなぁ
3:38 AM
お、出てくるようになった。便利だなぁ〜
Avatar
mac 向けのアプリビルドしたら Library not loaded: /usr/lib/swift/libswift_StringProcessing.dylib ってでるようになってなんぞこれっておもったらRegexのランタイムのやつか
👀 1
Avatar
omochimetaru 6/17/2022 8:22 AM
Xcode13.4.1で、Package.swift を開いてビルドしているとき
8:23 AM
ReleaseモードでBuild For Runすると、x64マシンなのにarm64アーキテクチャと両方ビルドしようとするんですが
8:23 AM
これを抑制してx64だけでビルドさせる技ってなんかありますかね?
8:23 AM
この症状のせいでbrewで入れてるライブラリにarm64バイナリが入っていないためにprofileビルドがリンクできなくて詰んでいます
Avatar
アーキテクチャ使わない宣言できなかったかしら
Avatar
omochimetaru 6/17/2022 8:24 AM
iOSならbuild settingsにarchsの設定があったけど・・・
Avatar
unsafeflagの出番かなあ
Avatar
ventura + xcode-beta をインストールしたのですが、 xcode-select --install で Command Line Tools をインストールしようとすると以下のエラーで失敗します。
Can’t install the software because it is not currently available from the Software Update server.
Command Line Tools インストールは homebrew で利用するためです。 Command Line Tools をインストールできている方いらっしゃいますか?
Avatar
ベータの内はdeveloper.apple.comから直接ダウンロードしてます。 https://developer.apple.com/download/all/?q=Command%20Line%20Tools
Avatar
なるほど! ありがとうございます。 無事にインストールできました 🙏
😋 1
Avatar
omochimetaru 8/16/2022 8:34 AM
https://github.com/omochi/xcode-local-deps-bug Xcodeのローカルパッケージ編集が1年以上壊れてるやつ、 救急車コピペの気配がするのでフィードバックアシスタント提出した
Contribute to omochi/xcode-local-deps-bug development by creating an account on GitHub.
9:08 AM
ローカルエディットモード機能がXcode13から完全に消滅してる件も報告を提出した
Avatar
心のなかでupvoted
Avatar
フィードバックアシスタントの提出エンティティって完全に個人プライベートなんだよね?
Avatar
そうだとおもってます
Avatar
心のupvoteありがとう・・・ レスポンスがあったらここに書こう
🙏 1
Avatar
https://twitter.com/___freddi___/status/1567526771532398593 Xcode が iTMSTransporter を同封しなくなったのでfastlaneでハマった。fastlane側を修正してるけどエラー処理から全部altoolに書き直しでしんどい 😇
Xcode 14 Beta からfastlaneのAppStore Connectへのアップロードが(デフォルトで)できない問題の解決方法|freddi https://t.co/zKkWNZLGEv #zenn 投稿し直し
Avatar
Avatar
omochimetaru
https://github.com/omochi/xcode-local-deps-bug Xcodeのローカルパッケージ編集が1年以上壊れてるやつ、 救急車コピペの気配がするのでフィードバックアシスタント提出した
Xcode14がリリースされたけど、2件出した feedback にはまだなんの反応もない
🥲 2
Avatar
omochimetaru 9/16/2022 6:55 AM
Xcode14の Edit > Convert > Current Swift Syntax をSwiftPMプロジェクトに対してかけてみたけど
6:55 AM
No such module 'UIKit' などのエラーメッセージが出ており
6:55 AM
おそらくターゲットがこの処理の実行中はiOSになっているようで、
6:56 AM
長時間待たされた挙げ句「変換元のコードが今のバージョンのSwiftでビルドできるか確認してください」と言って終わる
6:56 AM
あまりにも壊れておる
😇 2
6:56 AM
Avatar
Kishikawa Katsumi 10/1/2022 1:08 AM
https://github.com/apple/sourcekit-lsp/issues/636 Xcodeをクラッシュさせる正規表現リテラル😱
That&#39;s a regex literal with a names capture with an empty name. It doesn&#39;t compile, of course, since name is required. This fails correctly. But Xcode instantly crashes when typing ...
Avatar
omochimetaru 10/1/2022 3:36 AM
未実装のassertion書いてありそう・・・
Avatar
Kishikawa Katsumi 10/1/2022 3:45 AM
SourceKit
3:45 AM
が悲鳴をあげてるのかな。
3:45 AM
巻き込んでクラッシュしないようにどうにかならんのかな。
Avatar
14.1になってからだと思うんですが、 コンパイルエラーが出る→一旦クリーンすると消える→コード修正後ビルドするとビルドは成功するが解決したはずのエラー表示が再度出る という現象が発生しています。同様の人いますか?
Avatar
あーわかります
8:07 AM
最近そんな感じです
Avatar
エラーが出てるのに過去の成功したビルドで Simulator への Run は走るようなケースもあったりします......
t_wakaru 1
Avatar
Avatar
t.ae
14.1になってからだと思うんですが、 コンパイルエラーが出る→一旦クリーンすると消える→コード修正後ビルドするとビルドは成功するが解決したはずのエラー表示が再度出る という現象が発生しています。同様の人いますか?
根本的な解決ではないですが、↓はいかがでしょう? Product > Clear All Issues
Avatar
Avatar
koher
根本的な解決ではないですが、↓はいかがでしょう? Product > Clear All Issues
そんなのあったんですね。今ちょうど落ち着いてるので、再発したら試してみようと思います。
👍 1
Avatar
今再発してたので試してみましたが、やっぱり再度エラーが表示されてしまいますね・・・
Avatar
僕もちょうど試してみたんだけど、 Clean All Issuesすると表示からエラーは消えるけど、 そこで改めてビルドすると、 Build Succeeded の表示と共に、表示されていた嘘エラーが全部一瞬で再表示されたw
😇 1
12:49 AM
ビルド結果キャッシュ的なものとして、「成功+嘘エラー」が保存されていて、ビルドするとすぐに同じ表示が出てる感じがする。
Avatar
Clean All Issues、上記の嘘エラー発生時には役に立たないんだけど、
12:50 PM
本当のエラー発生時には役に立つ事がわかってきた
12:50 PM
本当のエラーとして出ていて、コードを直して、もう解決している状態なんだけど、リビルドしてもまだ出続ける事が結構あって、
12:50 PM
未だ他にも直していないエラーが出る時、どれが解決してるエラーでどれが未解決なのか見分けがつかなくなるので、どこから作業したらいいかわからなくて困るんだけど (edited)
12:51 PM
Clean All Issuesしてからリビルドすれば、残っているエラーだけが出るので、ビルド前にクリアするのが有効。
Avatar
似た話で、赤いエラーのアイコンから灰色になったまま消えないという問題に直面しております...Xcodeを再起動したら直りました。
Avatar
Kishikawa Katsumi 12/16/2022 3:58 AM
Xcodeのそこの品質はいっこうによくならないですね。
Avatar
ローカルエディット機能はなくなったままなんかな
Avatar
Xcode は難しい
4:00 AM
でも、AppCode も終了のお知らせだし、いろいろと厳しい (edited)
Avatar
Kishikawa Katsumi 12/16/2022 4:02 AM
AppCodeは悲しい
Avatar
CLI だけでビルド環境を整えるのはできるから、デバッグ環境かなあ。
Avatar
Kishikawa Katsumi 12/16/2022 4:48 AM
あと困ってる挙動としてTarget Dependenciesに設定したライブラリとかを全然ビルドしてくれなくなってる気がする。スキーマ変えてライブラリをビルドして戻って、っていうのをエラーが復活する現象もあるからクリーンもしょっちゅうして、みたいになってる。
Avatar
結構前からそれある印象なんですが、いまいち原因がわからないんですよね
Avatar
↓最近よくこの表示がフリーズしてる (edited)
Avatar
Kishikawa Katsumi 12/18/2022 6:49 PM
これは無視しても影響なさそうだけど何の処理なんすかね??
Avatar
わからないんですよねえ
Avatar
Kishikawa Katsumi 12/20/2022 9:21 PM
https://github.com/DougGregor/swift-macro-examples/commit/4900a5ce166c798b1a88e9bab94f41dc197b990d
If the first build fails, build again--there's something funky going on with the dependencies.
このなぜか2回ビルドしないと、っていうの上に書いたDependenciesをビルドしてくれないやつやな。Dougさんすら困っている。
Avatar
Avatar
omochimetaru
ローカルエディット機能はなくなったままなんかな
ローカルエディット無くなったので必要なときだけdependencyパッケージを開いてるんですが、xcode自体が重いのでそのたびに1分くらい待たされて最悪… 未だintel macなんですがarmだとましなんですかね?
Avatar
Avatar
Kishikawa Katsumi
https://github.com/DougGregor/swift-macro-examples/commit/4900a5ce166c798b1a88e9bab94f41dc197b990d
If the first build fails, build again--there's something funky going on with the dependencies.
このなぜか2回ビルドしないと、っていうの上に書いたDependenciesをビルドしてくれないやつやな。Dougさんすら困っている。
www コンパイラの差分ビルドとかのためのシンボル依存解析のシステム作ってたのDorgさんだったような・・・ Xcode側の問題なのかも
Avatar
Avatar
t.ae
ローカルエディット無くなったので必要なときだけdependencyパッケージを開いてるんですが、xcode自体が重いのでそのたびに1分くらい待たされて最悪… 未だintel macなんですがarmだとましなんですかね?
俺はIntel Macだけど2017年の最強マシンなんで特に不自由はしてないよ
2:58 AM
必要なときだけdependencyパッケージを開いてる
これがどういう操作か、よくわからなかった。
Avatar
1分くらい待たされるのわかる
Avatar
Avatar
omochimetaru
必要なときだけdependencyパッケージを開いてる
これがどういう操作か、よくわからなかった。
単にライブラリプロジェクトを別の画面で開いているというだけです。
Avatar
Avatar
t.ae
単にライブラリプロジェクトを別の画面で開いているというだけです。
試しにvapor開いてみたらたしかにレインボーホイール出てフリーズした。落ち着いて触れそうになるまでの時間測ってみたら60秒ぐらいだな。
😩 1
Avatar
単に依存が多いだけかもしれないですが、昔はここまで遅くなかったと思うんですよね。
Avatar
Avatar
t.ae
単に依存が多いだけかもしれないですが、昔はここまで遅くなかったと思うんですよね。
というかちゃんとバックグラウンドになっててこういうフリーズはしなかった気がする。niwさんの貼ってた例のバグの影響なんじゃないか。
Avatar
うーん。 CodegenKit という target と、 codegenkit という executableTarget を含むパッケージを作ったら、Xcodeが偶発的に変なエラーを出すようになった。 ビルドできたりできなかったりする。 macのファイル名がcase insensitiveなせいでバグってそう。 ただし、swiftpm cliからだとどうやら安定している。
7:37 AM
あとなんか秘孔をついたみたいでビルド中間ファイルがリポジトリルートにとっちらかるすごい現象が起きたけど、再現できない。
t_yamihuka 1
7:37 AM
😯 1
Avatar
cc: @Kishikawa Katsumi @kebo @norio_nomura 先日は https://discord.com/channels/291054398077927425/291211035438874625/1061262006180647053 の件についてアドバイスをいただきましてありがとうございました。 結局自分の環境のzshのPATH変数がおかしかったのと、tmuxの内部状態によって壊れていたようでtmuxを開き直したらXcodeを普通に開くことができるようになりました。 作りたかったツールも無事作ることが出来ました。 ありがとうございました 🙇‍♂️ https://github.com/s2mr/xc
Open your xcode project with Xcode of specific version - GitHub - s2mr/xc: Open your xcode project with Xcode of specific version
👏 3
Avatar
🍤ACエビフライ🔌 2/1/2023 4:02 PM
watchOS 8.5のsimulator runtimeをインストールしたいのですが、https://developer.apple.com/download/all/?q=Simulator%20Runtime に見つからずダウンロードできません。どこでダウンロードできるかご存じの方いらっしゃいましたら教えていただけると助かります。 他の9.xのsimulator runtimeのdmgのURLから推測してダウンロードを試みてみたりもしましたが、403 Forbiddenでした。 https://download.developer.apple.com/Developer_Tools/watchOS_8.5_Simulator_Runtime/watchOS_8.5_Simulator_Runtime.dmg 最終目的はGitHub ActionsによるCIでwatchOS向けのテストを動かすことです。現状のscheme/deployment targetではwatchOS 8.5のデバイスが必要である様子であるため(未精査)、取り急ぎGitHub Actions側でwatchOS 8.5のSimulator Runtimeをインストールする方向で考えています。 (edited)
Avatar
🍤ACエビフライ🔌 2/2/2023 2:26 AM
ありがとうございます!
👍 1
Avatar
norio_nomura 2/2/2023 2:30 AM
あとxcodebuild-downloadPlatformというオプションもあるみたいですが、バージョン指定できるのか?とか試していません。
Avatar
Avatar
norio_nomura
あとxcodebuild-downloadPlatformというオプションもあるみたいですが、バージョン指定できるのか?とか試していません。
🍤ACエビフライ🔌 2/2/2023 2:54 AM
ありがとうございます。-downloadPlatformオプションは見つけられませんでした -downloadAllPlatforms オプションは動くのですが、CIでは重すぎるかと思い敬遠していました
Avatar
🍤ACエビフライ🔌 2/2/2023 4:47 AM
-downloadAllPlatforms は全てのバージョンのシミュレータが入るわけではなく、入っていないプラットフォーム(私の場合はtvOS)のSDK and/or シミュレータが入るようでした。 先に教えていただいたURL( https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex )からwatchOS 8.5のSimulatorのインストーラをダウンロードし実行したのですが、インストールできませんでした。 おそらくmacOSのバージョンが適合しないためと思われます。 ローカルでは"このパッケージは、このバージョンのmacOSと互換性がありません。"というエラーが、(13.1 Ventura) CI(GitHub Actions macos-12)では下記のようなエラーが出ています。 installer: Package name is WatchSimulatorSDK8_5 installer: Installing at base path / installer: The install failed. (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance. The package is attempting to install content to the system volume.) Xcode(14.0.1)のGUIからはwatchOS 8.5をローカルにダウンロード&インストールできるので、何か別のインストール方法があるかもしれません。 (edited)
Avatar
norio_nomura 2/2/2023 6:31 AM
Xcode 13.2.1だと https://devimages-cdn.apple.com/downloads/xcode/simulators/index-13.2.1-7A3A18B7-4C08-46F0-A96A-AB686D315DF0.dvtdownloadableindex を見に行くので、Xcodeのバージョン毎に取得するリストが違う様です。先のリストはXcode 14.2が使ってた。
🙇‍♂️ 1
Avatar
Xcode14.2でデバッグを終了すると、シミュレータでアプリが起動したままブラックアウトした状態になって、再度デバッグしようとしてもデバッグできない状態になってしまうんですが、 同じような状況の方いらっしゃったりしますかね? Homeへ戻ってアプリを削除とかはできるのですが、それでもだめで、Xcode再起動やシミュレータ再起動でもダメでした。 Mac再起動をするとうまくいくみたいですが、また同じ状況が発生します。 Xcode14.3 betaもインストール済み(影響があるかはわかりません)なのですが、起動しているのはXcode14.2です。
Avatar
DerivedDataを削除したらうまくいきました。何か良くないキャッシュがあったのかもしれません。 と思ったらまた同じ状況になりました。 直近で大きめのアプリをモジュール分割したので、その辺りでこのようなバグが起きているんですかね。 (edited)
Avatar
ActivityMonitorを見たところデバッグアプリがCPU 100%のプロセスになっていたので、↓の対応をしたら良くなりました。 https://developer.apple.com/forums/thread/683277
😲 1
Avatar
Xcode 14.3 から TestPlan がデフォルトになって Scheme に UnitTest を紐づけようとしても GUI では TestPlan しか選べなくなってますね
12:18 PM
VSCode 等で直接 XML を編集しないと追加できないのちょっと不便ってなってます 😢
Avatar
お客様の中にarchiveの時だけエラーになるissueに遭遇した方はいませんか?Xcode 14.3です (edited)
Avatar
Genericなエラーじゃなかったので、もうちょっと調べます…
Avatar
Xcode版のこれ今年のWWDCで登場しないかな https://developer.android.com/studio/preview/studio-bot
Learn how to improve your coding productivity with Studio Bot.
Avatar
Kishikawa Katsumi 5/17/2023 1:28 PM
Android Studioのこれはめっちゃうらやましい。
Avatar
I installed Xcode 15 Beta to try out the new Apple's linker. It seems that my mold/sold linker is still a bit faster than theirs, but the gap has now reduced to ~60% when linking the sold linker itself on my Mac Studio. Apple's new linker is in the same league as mine. Great job!
Likes
147
Avatar
Kishikawa Katsumi 6/6/2023 5:10 AM
https://twitter.com/davidecci/status/1665835119331135488 書いた人が仕組みを話してました。
Today at WWDC we introduced a new static linker. It is a ground-up rewrite that’s up to 5x faster than ld64. The new linker is written with multicore in mind, and it’s the first production ready parallel linker officially supported for iOS development. (1/n)
Likes
850
Retweets
140
👀 2
Avatar
omochimetaru 6/6/2023 5:32 AM
おお〜〜
5:33 AM
サーバサイドだとリンク待ちまあまああるから嬉しいな、iOSだけなんかな
Avatar
リンク待ち長いがちなので嬉しい
Avatar
ld64ベースっぽいんでMachOプラットフォームだけじゃないかなぁ
😔 1
Avatar
Avatar
Yuta Saito
ld64ベースっぽいんでMachOプラットフォームだけじゃないかなぁ
そう、そう思ってすぐ消しちゃいました(Linuxでも使えるといいなと発言していた) (edited)
Avatar
今は Linux 向けは何が使われているんですかね?
Avatar
基本的にはGNU ldが使われています。lldも一応動くんですが、CIでテストされてないのでたまに壊れてます
t_naruhodo 1
Avatar
Linux 向けには mold がサポートされるとかあれば良さそうですね (edited)
Avatar
mold linkerでSwift製CLI XcodeGenをリンクしたらlldの1.3倍の速度でした。オブジェクトファイルのトータルサイズは31MB
👏 2
8:41 AM
少なくとも前試した時はmold普通に動いてました (edited)
8:42 AM
あとgoldを忘れてた…
Avatar
素晴らしい 🎉
Avatar
Xcode がデフォルトで入れてくる空白のみの行のスペースを消さなくなったんだけど何故だろう...
👀 2
5:37 AM
設定はちゃんと消すようにしてるのに。
Avatar
おお? } を入れると空白にスペース入れてくるな...
6:35 AM
そしてそれは消えない
6:36 AM
これbetaのバグだ
6:37 AM
これはひどいw (edited)
Avatar
Miwa / Ensan 9/24/2023 8:50 AM
実機デバッグで詰んでしまった https://x.com/miwa_ensan/status/1705839363391930736?s=20 (edited)
デバッグしてたら詰んでしまった。App Storeからも再インストールできないし、Xcodeからも実機ビルドできない。アプリ消すとデータ消えるので避けたい…… "<ID> is already installed, so we can't install App Extension with that same identifier"
8:52 AM
おそらく直前に「generate optimization profile」みたいなところ触っていたのが原因なんですが、アプリの再インストールが思いつく限りあらゆる方法で不可能になりました😇
Avatar
Kishikawa Katsumi 9/28/2023 4:32 AM
この初回だけ必要なシンボルキャッシュのコピーに進捗が出るようになったのいいな。今まで進んでるのかエラーなのか全然わからないデザインだったから。
wakaru 1
Avatar
そうでしたっけ。なんか回転式プログレスバーがあった気がするんだけど...
Avatar
Kishikawa Katsumi 9/28/2023 4:43 AM
クルクル回るやつ、あれだと動いてるのか止まってるのかわからなくてストレスでした。回ってるだけでエラー起こしてるっていうことよくあったし。
4:44 AM
ちなみに結局エラーになって終了したんすけどね(ケーブルで繋いだら成功した)。 (edited)
Avatar
omochimetaru 9/28/2023 5:21 AM
エラーになった草
Avatar
Kishikawa Katsumi 9/28/2023 5:27 AM
でもストレスはなかった。動いてることがわかるのはいい。
Avatar
あれ?Xcodeってプロジェクトごとにtrim trailing spacesの設定できなかったっけ…?
Avatar
Kishikawa Katsumi 10/6/2023 6:23 AM
全体の設定にあるやつしか知らない。プロジェクトごとは無理じゃない?
Avatar
無理か…今月から入る案件がLintで空白行のtrailing spacesもワーニング出て、でもグローバルでそれ設定したくないんですよね…
Avatar
linterあるのにformatterはない、みたいな状況なんですか?
Avatar
Formatterというか、Xcodeのプロジェクトごとにこの設定を変えたい感じです 🤔
Avatar
あ、それは分かってたんですが、それだけ厳しいと他にもルールがありそうなので、そのルール守るためにフォーマッタもありそうなものだなと
Avatar
あー例えばコミット時とかにFormatterかけるみたいなイメージですか?
Avatar
そういう感じですね
8:05 AM
この手のルールを人間が手作業で守るのは無駄だと思うので。
Avatar
まあそれはそうですが、エディターで設定していちいちローカルでFormatterかけたくないんですよね 😇
8:08 AM
そもそもプロジェクトごとに設定できるんであれば、Xcodeで開く時点でエディターがちゃんと守ってくれるはずなので…
Avatar
AppCodeがあれば・・・
Avatar
omochimetaru 10/6/2023 8:34 AM
たしかにそういうスタイルの設定がグローバルなのって変な感じもしますね
8:36 AM
formatterとかを入れつつxcode targetのrun script phaseを仕込んで呼び出すとか? swiftpmのビルドプラグインとかでもできそう
Avatar
ビルドするたびにフォーマットするのは何か悪影響があった気が
Avatar
omochimetaru 10/6/2023 9:01 AM
なるほど
Avatar
Kishikawa Katsumi 10/6/2023 9:07 AM
フォーマッタ入れるしかないよねえ。その空白を消す設定、編集してない既存の行には影響しないし。
Avatar
まあ既存の行はむしろ影響ない方が無駄なDiff発生しないから都合がいいと思いますよね; ちなみにXcode Projectと複数のPackage.swiftを併用するマルチモジュールでSwiftFormatter導入するベストプラクティスありますか?(そもそもApple製のSwiftFormatterとサードパーティのSwiftFormatter今どっちがおすすめですか?ちょっと前までだったらサードパーティ製の方が高機能だったりしてたようですがw
Avatar
Kishikawa Katsumi 10/7/2023 4:18 AM
ワタシはFormatterもLinterも使ってないけど、NicklockwoodさんのSwiftFormatのほうが高機能ではあるね。 Appleのswift-formatは既存のコードの面影がなんとなく残る、みたいなゆるやかな挙動をする。
👀 1
Avatar
yutailang0119 10/7/2023 7:14 AM
NicklockwoodさんのSwiftFormatter、GitHub Actionsのスタンダードあります?(ちょっと悩んでる
Avatar
Mac OS sonoma の XCode 15.x で、iOS 14x simulator がリストにないのが、Apple Deverloper Forum でご無沙汰無しな状態なんですが、iOS 14x はもう見放されたんですかね。。 https://developer.apple.com/forums/thread/738623 (edited)
Avatar
iOS14の端末って全てiOS15に上げられるんじゃなかったですっけ?
🧐 1
t_majika 1
t_arigatou 1
Avatar
ダウンロード可能なランタイム一覧を https://devimages-cdn.apple.com/downloads/xcode/simulators/index2.dvtdownloadableindex から取得できますが、iOS 14.x simulatorには <key>hostRequirements</key> <dict> <key>maxHostVersion</key> <string>13.99</string> </dict> とか入っていて、試しにダウンロードしても Sonoma では $ simctl runtime add ~/Downloads/com.apple.pkg.iPhoneSimulatorSDK14_5-14.5.1.1621461325.dmg D: A5D2C440-CA26-4F0F-B184-F5AC3C3F0028 <unknown platform> (Unusable - Missing Signature: Error Domain=SimDiskImageErrorDomain Code=3 "Missing Signature" UserInfo={NSLocalizedDescription=Missing Signature, unusableErrorDetail=}) とかエラーで追加できませんでした。
Avatar
見放された、というよりmaxHostVersionで制限されてるランタイムの仕様が、Sonomaで実行されるCoreSimulatorの要求を満たさなくなった、って感じに見える。
👀 1
t_arigatou 1
Avatar
なるほど🧐🧐
11:27 AM
iOS14 は一旦、諦める!
Avatar
xcodeで既存のアプリの画面比率の編集って可能ですか?例えばこの画像だとホームボタンのないiPhoneだと左右に黒い線が入っているのでそれをxcodeで画像をいれて補うなどって可能ですか...?本当に初心者で何も分からないのですみません...
Avatar
Kishikawa Katsumi 12/17/2023 1:59 PM
自分のアプリじゃないんですよね?それはどうしようもないと思います。自分のアプリならおっしゃる通りスプラッシュスクリーンの画像の追加などで大画面に対応させることができます。
Avatar
ありがとうございます😭
2:17 PM
そのアプリのipa ファイルを持ってても不可能ですかね...?
Avatar
treastrain / Tanaka.R 12/18/2023 3:03 AM
.ipa ファイルを持っていても不可能です…。
Avatar
omochimetaru 4/11/2024 2:51 PM
@Kishikawa Katsumi Xcode15.3 でSwiftPMプロジェクトのテストを実行したとき、XCTestCaseが切り替わるとコンソールの出力が消えてしまうんですけど、 ↓ 岸川さんのこの情報で治るやつかなと思って、やって見たけど直らなかったんですが、何か知ってますか? https://discord.com/channels/291054398077927425/387857770038427648/1117252827392249927 (edited)
Avatar
Avatar
omochimetaru
@Kishikawa Katsumi Xcode15.3 でSwiftPMプロジェクトのテストを実行したとき、XCTestCaseが切り替わるとコンソールの出力が消えてしまうんですけど、 ↓ 岸川さんのこの情報で治るやつかなと思って、やって見たけど直らなかったんですが、何か知ってますか? https://discord.com/channels/291054398077927425/387857770038427648/1117252827392249927 (edited)
Kishikawa Katsumi 4/11/2024 5:43 PM
これはわからないですね。実行中はアクティブなターゲットのログが表示されるとしても全部終わったら全部出てくると思うんですけどやってみたら出てこないですね。SwiftPMのプロジェクトのテストの数が多いからとかそんな理由なんだろうか。
5:44 PM
Report Navigatorから見ると実行中も実行後も全部見えるので見にくいけどそこを使うのが回避策じゃないでしょうか。
Avatar
omochimetaru 4/12/2024 1:03 AM
ありがとうございます。やっぱりこの現象はparallel testingとかとは別の話なんですね。 Report Navigatorだとテストの成功or失敗は階層的に整理されて見れるけど、 コンソール出力としては個別のテストメソッドごとにしか閲覧できない? コンソールの文字列を全部通して見るのが一番認知しやすいんですけど、その手段は完全に消えてるのかな・・・
1:04 AM
普段は網羅的な確認はこの左のペインでやってて、 コンソールが見たい時はそのコンソールが出るテストをもう一回実行しています・・・
Avatar
Kishikawa Katsumi 4/12/2024 6:44 AM
これはさすがにXcodeのバグだと思う。他のテストだと実行後にちゃんとAllの出力が残ってるから。 Consoleが溢れるとそうなるのかな。
Avatar
omochimetaru 4/12/2024 8:30 AM
ふむ。いつからだろう、ずいぶん前からそうだった気もするんですよね。
Avatar
細かいですけど、macOSでウィンドウスクショするときOption押しながら撮ると影なくせますよ
Avatar
omochimetaru 4/12/2024 8:33 AM
この影消せたんだ
Avatar
defaultsもあった気がする
Avatar
Kishikawa Katsumi 4/12/2024 9:59 AM
defaults write com.apple.screencapture "disable-shadow" -bool "true" たぶんこう。
Avatar
個人的には影いらないとは思ってないですね むしろこれがウィンドウ全体ですよ、というシグナルになるので便利 他人のスクショを見るときは下手に切り取られて情報が欠けてないか気になってしまいます (edited)
Exported 2,712 message(s)
Timezone: UTC+0